学习笔记:一本书读懂TCP/IP

来源:互联网 发布:小米看电视直播软件 编辑:程序博客网 时间:2024/05/22 01:51

1、 OSI (Open System Internet 开放系统互联)参考模型: 物理层Physical,数据链路层Data Link,网络层Nextwork,传输层Transport,会话层Session,表示层Presentation,应用层Application。

2、TCP/IP参考模型: 网络接口层,互联网层,传输层,应用层。

3、TCP报文包括了首部和数据部分,首部:(1)源端口和目的端口字段(各16bit);(2)序号字段(SEQ),32bit。(3)确认序号(ACK),32bit,只有ACK标志位为1时才有效,ACK=SEQ+1;(4)标志位,共有6个:URG(urgent)紧急比特、ACK(确认比特)、PSH(推送比特)、RST(复位比特)、SYN(同步比特)、FIN(终止比特)。(5)数据偏移。(6)窗口字段。(7)检验和。(8)紧急指针字段。(9)选项字段。(10)保留字段。

4、TCP的建立连接时的三次握手:
第一次握手:client向server发送一个连接请求,在这个包中,标志位SYN=1,发送序号SEQ=x,client进入SYN_SEND状态,等待server确认。
第二次握手:server收到数据包后由标志位SYN=1知道client请求建立连接,server将标志位SYN和ACK都置为1,确认序号ACK=SEQ+1=x+1。随机产生一个发送序号SEQ=y。并将该数据包发送给client,server进入SYN_REVD状态。
第三次握手:client收到确认后,检查确认序号ACK是否为x+1,标志位ACK是否为1,如果是,则将标志位ACK置为1,确认序号ACK=SEQ+1=y+1,并将此包发送给server,server检查ACK是否为y+1,标志位ACK是否为1,如果是则连接建立成功,Client和Server进入到ESTABLISHED状态。
三次握手完成。

5、TCP断开连接的四次挥手
第一次挥手: client要断开连接时,向server发送一个包,其中标志位fin = 1,ACK=1,发送序号SEQ=x,确认序号ACK=y,client进入final_wait_1状态。
第二次挥手: server收到client的断开请求后,发送一个确认包,其中标志位ACK=1,确认序号ACK=SEQ+1=x+1,发送序号SEQ=y,server进入Close_wait状态。
第三次挥手:server断开TCP连接,此时发送一个包,其中标志位FIN=1,发送序号SEQ=y+1,server进入Last_ack状态。
第四次挥手:client收到server的断开请求后client进入time_wait状态,接着发送确认包,标志位ACK=1,发送序号SEQ=x+1,确认序号ACK=SEQ+2= y+2。server进入close状态。

待续。

原创粉丝点击