TCP/IP协议栈
2019-10-12 本文已影响0人
学学学q
概念:一系列网络协议的总和,是构成网络通信的核心骨架,定义了电子设备如何连入因特网,以及数据如何在他们之间进行传输
结构
分为应用层、传输层、网络层和链路层,每一层都呼叫他的下一层所提供的协议来完成自己的需求
发送者如何知道接收者的MAC地址?
发送者如何知道接收者和自己同属一个子网?
如果接收者和自己不在同一个子网,数据包如何发给对方?
为了解决这些问题,网络层引入了三个协议,分别为IP协议、ARP协议、路由协议。
传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性。
TCP和UDP
UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性比较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了,TCP即传输控制协议,是一种面向连接、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个确认包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包
三次握手
主机A:我想发数据给你,可以么?
主机B:可以,你什么时候发?
主机A:我马上发,你接着!
应用层的主要工作就是定义数据根式并按照对应的格式解读数据
总结:
- 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据;
- 网络层:定义IP地址,确认主机所在的网络位置,并通过IP进行MAC寻址,对外网数据包进行路由转发
- 传输层:定义端口,确认主机上应用程序身份,并将数据包交给对应的应用程序;
- 应用层:定义数据格式,并按照对应的格式解读数据
当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包首先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。