ISO (Open System Interconnection) 开放式系统互联,一般叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。目的就是为了要指定一个国际通用的标准

ISO 七层协议 五层是:应用层合并了表示层、会话层
1、物理层
常见的标准 RJ-11 RJ-45 现在厂商都是RJ-45接口标准的水晶头
水晶头 水晶/塑料/接触片/镀金/纯铜/镀铜 网线
2、数据链路层
常见标准的MAC地址 二级网络 交换机
3、网络层
标准IP 地址 路由器 三层网络 IP地址
公网IP 相当于家庭地址(跟世界互联)
私网IP 局域网内:
192.168.0.1
192.168.1.1
192.168.2.1
相当于你的房间号
4、传输层
TCP 稳定传输 UDP 传输的方式
ssh服务
开发人员(程序员)
5、会话层
Linux/Unix 层语言编程 控制包数据
6、表示层
文件的格式 类型 PNG JPEG MPEG AVI MKV MP4 TS等、加密的处理
7、应用层
操作系统上装的程序,自己开发。标准 HTTP 80 HTTPS 443 FTP 21 SSH 22 POP/SMTP等
OSI 7层模型中的数据传输结构
应用层:Hello World (表示层 TEXT json 会话层:建立会话)
传输层:报文消息头 TCP/UDP 字段 segment
网络层 : IP 地址的报文的消息头 IP 包 packet
链路层:添加一个以太信息 帧 frame
物理层:网卡 010100101001 电信号
这是7层模型封包的一个过程

7层模型解包的一个过程
物理层:网卡 电信号 010100101001 2进制的信息
链路层:以太信息
网络层:IP
传输层:TCP
会话层:socket
表示层:类型 Text jpeg png
应用层:向操作系统要数据
可以用抓包工具 Wireshark 查看数据包

TCP 三次握手 与 四次挥手
三次握手的过程如下:
客户端发送syn(seq=x) 报文给服务器,然后进入syn_sent状态
服务器收到syn报文,回应应该 seq=y,ack=x+1报文,进入syn_rcvd状态
客户端收到syn报文,回应一个 ack=y+1,seq=x+1 进入 established状态;服务器收到ack报文后,进入established状态
三次握手后,客户端和服务器建立连接成功,可以开始传输数据了。

四次挥手的过程如下:
客户端上地某个进程主动关闭连接,发送FIN(seq=u,ack=x) 报文给服务器,然后客户端进入FIN_WAIT_1 状态
服务器收到客户端报文回应一个 ack=u+1,seq=x 进入 close_wait状态,客户端收到FIN报文,进入 FIN_WAIT_2状态。
服务端向客户端发送FIN(seq=u,ack=x)报文进入 last_ack状态
客户端收到FIN报文,向服务端发送(ack=u+q,seq=u+1) 进入TIME_WAIT状态。
四次挥手之后,客户端和服务端成功断开了连接。

为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
网友评论