传输单位:
数据链路层 flame
网络层 packet
传输层 segment
会话层 SPDU
表示层 PPDU
应用层 APDU
传输层能够检测路由器丢弃的包。因为ip层可能丢包,传输层能检测到,然后请求重传,而且他能够将乱序收到的数据包重新排序。。
应用层协议有http,https,ftp,telnet,ssh,smtp,pop3等
通常大家都是用tcp/ip四层模型
链路层协议有arp,rarp,网络层有ip,icmp,iGmp,传输层有tcp,udp。。
对于ftp协议,他的运输层是用tcp协议,网络层是用ip协议,链路层是用以太网驱动程序。。。这是客户端,
然后通过路由器,然后到ftp服务器网络,这边网络可能是令牌环网,所以到达的数据链路层可能是令牌环驱动程序,然后到网络层的ip,再到传输层的tcp,最后到达ftp服务器。
内核中已经实现了协议zhan的实现
对等通信,就是说同一层才能和同一层协议通信,ftp客户端和ftp服务器通信,实际上是通过虚电路通信。。
我们把tcp/ip协议也叫协议栈。。
如果数据报超过最大传输单元mtu,那么就需要分片。。当两台主机之间有很多mtu,那就选最小的那个进行mtu。。
通信之间可以看成是一个封装和分用的过程。。
icmp用于传递差错信息,时间回显,网络信息等控制信息
ip数据报格式的字段:版本,首部长度,服务类型tos,总长度,标识,标志与片偏移,ttl,协议类型,头部校验和,源ip,目的id等等
tcp特点:
基于字节流(segment,无边界,存在粘包问题,也就是边界问题)
面向链接
可靠传输(校验和)
缓冲传输
全双工
流量控制(窗口机制)
tcp如何保证可靠:
不可靠不外乎:
差错,tcp通过校验和来保证
失序,tcp通过seq来保证
重复,tcp通过seq来保证
丢包,超时重传+确认
udp无链接,不可靠,一般情况下更加高效。。