Skip to content

网络模型 #97

@coconilu

Description

@coconilu

概述

互联网世界最简单的模型就是服务端和客户端,互联的目的就是数据的分享,而分享的准确性和安全性是由一个又一个协议保证的,它们是前人智慧的结晶。

OSI通信模型

借助网上的图片:
image

完整的七层模型:

1. 应用层
网络服务与最终用户的一个接口。
应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。
协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP

2. 表示层
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。
格式有,JPEG、ASCll、DECOIC、加密格式等

3. 会话层
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。

4. 传输层
定义传输数据的协议端口号,以及流控和差错校验。
向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层

5. 网络层
负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP

6. 数据链路层
通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。

7. 物理层
负责最后将信息编码成电流脉冲或其它信号用于网上传输。(由底层网络定义协议)

TCP/IP四层模型

参考下面的图:
image

1. 应用层
对应OSI七层模型的应用层、表示层、会话层

2. 传输层
对应OSI七层模型的传输层

3. 网际层
对应OSI七层模型的网络层

4. 网络接口
对应OSI七层模型的数据链路层、物理层

TCP的三次握手和四次挥手:

image

三次握手过程:

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

四次挥手过程:

第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。

第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。

第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。

第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

参考

OSI七层协议和TCP/IP四层协议
OSI七层网络模型与TCP/IP四层网络模型
TCP/IP四层模型
通俗大白话来理解TCP协议的三次握手和四次分手
三次握手、四次握手内容整理

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions