📄 35.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 + -