OSI7层网络架构

网络协议

计算机网络体系结构分层

OSI7层网络架构和TCP/IP协议四层模型对比1234

当发起一个HTTP请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。

链路层

以太网协议,规定接入的网络设备必须有网卡,网卡的MAC地址是唯一的。

链路层主要工作是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。

网络层

路由器工作在网络层,交换机工作在链路层。

网络层的主要工作是定义网络地址,区分网段,子网内MAC寻址,对于不同子网的数据包进行路由。

传输层

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。可靠通信由确认和重传机制保障,TCP流量控制通过滑动窗口机制7控制。

UDP(User Datagram Protocol用户数据报协议)是一种无连接、不提供可靠传输服务的、面向报文的传输层协议。

传输层主要工作是定义端口,标识应用程序身份,实现端口到端口的通信。

应用层

应用层定义了各种各样的协议来规范数据格式,常见的有HTTP、FTP、SSH、SMTP、DNS(通过域名获取IP)、DHCP(动态分配IP)等。

TCP三次握手四次挥手

SYN:发起一个新连接;ACK:确认序号有效;FIN:释放一个连接8

为什么建立连接需要三次握手

为什么释放连接比建立连接多了一次握手

可以看到这里服务端的ACK(回复客户端)和FIN(终止)消息并不是同时发出的,而是先ACK,然后再FIN,这也很好理解,当客户端要求断开连接时,此时服务端可能还有未发送完的数据,所以先ACK,然后等数据发送完再FIN。这样就变成了四次握手了。