TCP/IP介绍
应用层
主机到主机层(RFC里面好像是主机到主机,思科的好像应该定的是传输层,不过也无所谓)
Internet层
网络接入层
应用层
文件传输:TFTP,FTP,NFS
E-MAIL:SMTP
远程登录:telnet,rlogin
网络管理:SNMP
名称管理:DNS
主机到主机层
TCP(Transmission Control Protocol)协议 -面向连接
UDP(User Datagram Protocol)协议 -非面向连接
TCP数据表
Source port(16) Destination port(16)
Sequence number(32)
Acknowledgement number(32)
Header_length(4) Reserved(6) Code bits(6) Window(16)
Checksum(16) urgent(16)
Options(0 to 32 if any)
Data
UDP数据格式
Source port(16) Destination port(16)
length(16) Checksum(16)
Data(if any)
PS:这里UDP的length指UDP头及数据长度,TCP的Header_length只是头长度,所以TCP的Headerlength只有4位,UDP的length有16位。
端口号
TCP:FTP,TELNET,SMTP,DNS
UDP:DNS,TFTP,RIP,SNMP
小于1024的属于知名端口号,需要记忆一下
TCP三次握手
1.A发送SYN(seq=100 ctl=SYN)
2.B接收,B发送SYN.ACK(seq=300 ack=101 ctl=syn.ack)
3.A接收,建立会话(seq=101 ack=301 ctl=ack)
TCP简单确认
1.发送方发送1
2.接收方接收1,发送ACK2
3.接收ACK2,发送2
4.接收2,发送ACK3
5.以此类推
滑动窗口为1代表一次只发送一份
TCP顺序号和确认号
seq和ack
TCP窗口
发送
windows size = 3 Send 1
windows size = 3 Send 2
windows size = 3 Send 3
接收
ACK 3
window size = 2,数据3被丢弃
发送
window size = 3 Send 3
window size = 3 Send 4
接收
ACK 5
Window size = 2
PS:这里估计处理机制是看发送过来的seq,如果发送数据丢包了没有关系,接收端返回的ACK只是最后接收到的seq+1,所以再次请求数据,同时由于发送端发送数据包内包含窗大小,所有接收端将窗大小减少,并将此设置发回发送端。
Internet层
IP:Internet protocol
ICMP:Internet Control Message Protocol
ARP:Address Resolution Protocol
RARP:Reverse Address Resolution Protocol(RARP)
IP
Version(4) Headlength(4) Priority&Type_of_service(8) Total_length(16)
Identification(16) flags(3) Fragment offset(13)
Time to live(8) Protocol(8) Header checksum(16)
Source IP address(32)
Destination IP address(32)
Options(0 or 32 if any)
Data(varies if any)
Protocol表示上层协议
ICMP协议
Destination,Unreachable,Echo(Ping),Other
ARP协议
应用层
主机到主机层(RFC里面好像是主机到主机,思科的好像应该定的是传输层,不过也无所谓)
Internet层
网络接入层
应用层
文件传输:TFTP,FTP,NFS
E-MAIL:SMTP
远程登录:telnet,rlogin
网络管理:SNMP
名称管理:DNS
主机到主机层
TCP(Transmission Control Protocol)协议 -面向连接
UDP(User Datagram Protocol)协议 -非面向连接
TCP数据表
Source port(16) Destination port(16)
Sequence number(32)
Acknowledgement number(32)
Header_length(4) Reserved(6) Code bits(6) Window(16)
Checksum(16) urgent(16)
Options(0 to 32 if any)
Data
UDP数据格式
Source port(16) Destination port(16)
length(16) Checksum(16)
Data(if any)
PS:这里UDP的length指UDP头及数据长度,TCP的Header_length只是头长度,所以TCP的Headerlength只有4位,UDP的length有16位。
端口号
TCP:FTP,TELNET,SMTP,DNS
UDP:DNS,TFTP,RIP,SNMP
小于1024的属于知名端口号,需要记忆一下
TCP三次握手
1.A发送SYN(seq=100 ctl=SYN)
2.B接收,B发送SYN.ACK(seq=300 ack=101 ctl=syn.ack)
3.A接收,建立会话(seq=101 ack=301 ctl=ack)
TCP简单确认
1.发送方发送1
2.接收方接收1,发送ACK2
3.接收ACK2,发送2
4.接收2,发送ACK3
5.以此类推
滑动窗口为1代表一次只发送一份
TCP顺序号和确认号
seq和ack
TCP窗口
发送
windows size = 3 Send 1
windows size = 3 Send 2
windows size = 3 Send 3
接收
ACK 3
window size = 2,数据3被丢弃
发送
window size = 3 Send 3
window size = 3 Send 4
接收
ACK 5
Window size = 2
PS:这里估计处理机制是看发送过来的seq,如果发送数据丢包了没有关系,接收端返回的ACK只是最后接收到的seq+1,所以再次请求数据,同时由于发送端发送数据包内包含窗大小,所有接收端将窗大小减少,并将此设置发回发送端。
Internet层
IP:Internet protocol
ICMP:Internet Control Message Protocol
ARP:Address Resolution Protocol
RARP:Reverse Address Resolution Protocol(RARP)
IP
Version(4) Headlength(4) Priority&Type_of_service(8) Total_length(16)
Identification(16) flags(3) Fragment offset(13)
Time to live(8) Protocol(8) Header checksum(16)
Source IP address(32)
Destination IP address(32)
Options(0 or 32 if any)
Data(varies if any)
Protocol表示上层协议
ICMP协议
Destination,Unreachable,Echo(Ping),Other
ARP协议