为了知其然,知其所以然,一直都在跟网络打交道,但一直不知道网络数据在链路上的传输规则,所以去看了 《TCP/IP详解 卷一:协议》,虽然没看懂多少,但了解到更多专业名词和传输规则,特地记录一下。
大纲
- TCP和UDP是两种运输层协议,两者都使用IP作为网络层协议。
- IP服务是不可靠的,但TCP提供一种可靠的运输层服务。(邮件、文件发送用它)
- UDP为应用程序发送和接受数据报。(SNMP、DNS和一开始的QQ使用的就是UDP)
- IP是网络层的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
- ICMP是IP协议的附属协议。IP层用它来与其它主机或路由器交换错误报文和其它重要信息。
- IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。
- ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址。
IP:网际协议
提供不可靠、无连接的数据报传输服务。
不可靠(unreliable) :
它不能保证IP数据报能成功到达目的地。IP仅提供尽力而为的传输服务。如某个路由器暂时用完了缓冲区,IP有个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(TCP)。
无连接(connectionless):
IP并不维护任何关于后续数据报的状态信息。每个数据报的处理都是独立的。
IP首部和各个字段含义:
- Version:对等层之间要使用同一种IP协议(常用IPv4协议)
- 首部长度:看下有没有包含选项,如果没有的话,一般是0101,一个单位四个字节,表示20字节。
- 服务类型(TOS):包括一个3bit的优先权字段(现在已被忽略),4bit的TOS子字段和1big未用位但必须置0.
- 总长度字段:整个IP数据报的长度,以字节为单位。
- 标识:唯一标识主机发送的每一份数据报。
- 标志:数据包在传输的过程中,标志字段MF(More Fregment),MF = 1表示后面还有分片,MF = 0 表示最后一个分片
- 片偏移量:每个数据片不同时传输,标志着谋片在原分组中的相对偏移位置
- 生存时间(TTL):设置了数据报可以经过的最多路由器数。
- 协议:指出此数据报所携带上层数据使用的TCP协议还是UDP协议
- 首部检验和:根据IP首部计算的检验和码。字段只校验数据报的首部,不对首部之后的数据进行计算。
- 源地址:32位的IP地址