tcp/ip协议做了啥
# 基础知识: - tcp/ip协议不是一个协议,是一个协议群,tcp/ip协议对应的四层模型,应用层、传输层、网络层、链路层。 ## 各层到底做了啥? - 链路层: 主要是将数据封装成数据帧,数据帧头部信息有源mac地址,目标mac地址,然后以广播形式通过物理介质(光纤、双绞线..)发送给目标主机。 为什么有ip地址还需要mac地址? ip地址是分配的,可变动的,mac地址是每块网卡的身份标识,主机接入互联网必须使用网卡,网卡地址是一个机器全球唯一标识,所以通过mac地址找目标主机更可靠。 有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。 - 网络层: 发送者如何知道接收者的MAC地址?(arp协议) 发送者如何知道接收者和自己同属一个子网?(ip协议) 如果接收者和自己不在同一个子网,数据包如何发给对方(路由协议) 网络层有ip协议、arp协议、路由协议,主要是解决如上三个问题。 我认为该层主要是为了获取目标的mac地址。 ARP获取mac地址,ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包