osi7层模型
网络工程师 | 作用 |
---|---|
物理层 | 通信介质的信号到数字信号(二进制0101) |
数据链路层 | 局域网之间计算机通信,通过mac地址通信 |
网络层 | IP地址,路由(通过网络访问世界) |
传输层 | tcp、udp (tcp可靠,速度慢)(udp不可靠,速度快)端口 :让不同的应用程序同时使用网络 |
前四层:控制数据的传输
后三层:实际数据
开发 | 作用 |
---|---|
会话层 | 控制发包的数据 |
表示层 | 文件格式 |
应用层 | 应用程序的使用 |
一个数据包:传输控制层面只占一部分,数据占用了大部分
tcp的数据传输过程:
10.0.0.201 —> 10.0.0.1 (seq 3349228317,ack 4060621206)
PSH
10.0.0.1 --> 10.0.0.201(seq 4060621222,ack 3349228317)
10.0.0.1 --> 10.0.0.201(seq 4060621290,ack 3349228317)
10.0.0.201 —> 10.0.0.1 (seq 3349228317,ack 4060621290)
tcp的三次握手
客户端第一次发带syn标识和随机序列号
syn代表我要和你握手
ack同意握手,代表手握上了
作为服务端也要给客户端发一个syn握手,代表手握上了
简单来说:客户端向服务端,发送一个带有syn表示的包,服务端收到之后,会回应一个包,包里面有syn和ack标识,最后就客户端回应一个ack的bao,三次握手建立成功
谁先发包谁就是客户端
显示syn开始同步数据
三次握手的时候值+1
传输数据的时候就不一定是+1了
同步完数据就开始建立连接
syn变成PSH,确认有没有收到数据是标识ACK
tcp的四次挥手
谁先发起挥手谁就是客户端
每次发的包回应的时候要加1
发一个FIN,ACK标识, 随机序列号x,确认序列号y
服务端收到以后回一个ACK标识随机序列号y+1,确认序列号x+1
再回一个FIN标识,随机序列号y+1,确认序列号x+1
客户端收到以后发一个ACK标识,确认序列号y+2