⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 35.htm

📁 unix高级编程原吗
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>123</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">               ● UNIX网络编程                       (BM: clown)                </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="17.htm">上一层</a>][<a href="36.htm">下一篇</a>]
<hr><p align="left"><small>发信人: cloudsky (晓舟·轩辕明月), 信区: Linux <br>

标  题: 网络socket编程(4) <br>

发信站: 武汉白云黄鹤站 (Mon Feb  8 20:21:10 1999) , 站内信件 <br>

  <br>

9. 一些重要的数据结构 <br>

/usr/include/netinet/ip.h <br>

struct ip { <br>

#ifdef _BIT_FIELDS_LTOH <br>

        u_char  ip_hl:4,                /* header length */ <br>

                ip_v:4;                 /* version */ <br>

#else <br>

        u_char  ip_v:4,                 /* version */ <br>

                ip_hl:4;                /* header length */ <br>

#endif <br>

        u_char  ip_tos;                 /* type of service */ <br>

        short   ip_len;                 /* total length */ <br>

        u_short ip_id;                  /* identification */ <br>

        short   ip_off;                 /* fragment offset field */ <br>

#define IP_DF 0x4000                    /* dont fragment flag */ <br>

#define IP_MF 0x2000                    /* more fragments flag */ <br>

        u_char  ip_ttl;                 /* time to live */ <br>

        u_char  ip_p;                   /* protocol */ <br>

        u_short ip_sum;                 /* checksum */ <br>



        struct  in_addr ip_src, ip_dst; /* source and dest address */ <br>

}; <br>

  <br>

/usr/include/netinet/tcpip.h <br>

struct tcpiphdr { <br>

    struct ipovly ti_i;  /* overlaid ip structure */ <br>

    struct tcphdr ti_t;  /* tcp header */ <br>

}; <br>

  <br>

/usr/include/netinet/ip_var.h <br>

struct ipovly { <br>

    caddr_t ih_next, ih_prev;  /* for protocol sequence q's */ <br>

    u_char  ih_x1;             /* (unused) */ <br>

    u_char  ih_pr;             /* protocol */ <br>

    short   ih_len;            /* protocol length */ <br>

    struct  in_addr ih_src;    /* source internet address */ <br>

    struct  in_addr ih_dst;    /* destination internet address */ <br>

}; <br>

  <br>

/usr/include/netinet/tcp.h <br>

struct tcphdr { <br>

        u_short th_sport;   /* source port */ <br>



        u_short th_dport;   /* destination port */ <br>

        tcp_seq th_seq;     /* sequence number */ <br>

        tcp_seq th_ack;     /* acknowledgement number */ <br>

#ifdef _BIT_FIELDS_LTOH <br>

        u_int   th_x2:4,    /* (unused) */ <br>

                th_off:4;   /* data offset */ <br>

#else <br>

        u_int   th_off:4,   /* data offset */ <br>

                th_x2:4;    /* (unused) */ <br>

#endif <br>

        u_char  th_flags; <br>

#define TH_FIN  0x01 <br>

#define TH_SYN  0x02 <br>

#define TH_RST  0x04 <br>

#define TH_PUSH 0x08 <br>

#define TH_ACK  0x10 <br>

#define TH_URG  0x20 <br>

        u_short th_win;     /* window */ <br>

        u_short th_sum;     /* checksum */ <br>

        u_short th_urp;     /* urgent pointer */ <br>

}; <br>

  <br>

  <br>

9. 来自水木清华系统安全版精华区的内容 <br>

  <br>

  IP头格式 <br>

=========== <br>

  版本号              (4位) <br>

  IP头长度            (4位) <br>

  服务类型            (8位) <br>

  数据包长度          (16位) <br>

  标识段              (16位) <br>

  标志段              (16位) <br>

  生存时间            (8位) <br>

  传输协议            (8位) <br>

  头校验和            (16位) <br>

  发送地址            (16位) <br>

  目标地址            (16位) <br>

  选项 <br>

  填充 <br>

  <br>

   简单说明 <br>

============ <br>

  <br>

   1. IP头长度计算所用单位为32位字, 常用来计算数据开始偏移量 <br>



   2. 数据包长度用字节表示, 包括头的长度, 因此最大长度为65535 <br>

      字节 <br>

   3. 生存时间表示数据被丢失前保存在网络上的时间, 以秒计. <br>

   4. 头校验和的算法为取所有16位字的16位和的补码. <br>

   5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度 <br>

      为整字节的倍数. <br>

  <br>

  TCP头格式 <br>

=========== <br>

  <br>

  源端口              (16位) <br>

  目的端口            (16位) <br>

  序号                (32位) <br>

  确认号              (32位) <br>

  数据偏移            (4位) <br>

  保留                (6位) <br>

  标志                (6位) <br>

  窗口                (16位) <br>

  校验和              (16位) <br>

  紧急指针            (16位) <br>

  选项 <br>

  填充 <br>

  填充 <br>

  <br>

   简单说明 <br>

============ <br>

  <br>

   1. 数据偏移用于标识数据段的开始 <br>

   2. 保留段6位必须为0 <br>

   3. 标志包括紧急标志、确认标志、入栈标志、重置标志、 <br>

      同步标志等。 <br>

   4. 校验和计算方式为将头与16位二进制反码和中的16位 <br>

      二进制反码加在一起。 <br>

   5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度 <br>

      为整字节的倍数. <br>

   6. 更详细的说明请参阅有关资料。 <br>

  <br>

  <br>

-- <br>

            我问飘逝的风:来迟了? <br>

            风感慨:是的,他们已经宣战。 <br>

            我问苏醒的大地:还有希望么? <br>

            大地揉了揉眼睛:还有,还有无数代的少年。 <br>

            我问长空中的英魂:你们相信? <br>

            英魂带着笑意离去:相信,希望还在。 <br>

</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="17.htm">上一层</a>][<a href="36.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -