加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android收集编程-TCP/IP协议

发布时间:2019-09-23 14:25:33 所属栏目:教程 来源:科技在发展
导读:在Android收集编程-计较机收集基本一文中得知,IP协议属于收集层,TCP、UDP协议属于传输层。 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无毗连、不行靠的处事。 TCP协议是面向毗连的传输层协议,提供一种面向毗连的、靠得住的字节约处事。 UDP协
副问题[/!--empirenews.page--]

在Android收集编程-计较机收集基本一文中得知,IP协议属于收集层,TCP、UDP协议属于传输层。

IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无毗连、不行靠的处事。

TCP协议是面向毗连的传输层协议,提供一种面向毗连的、靠得住的字节约处事。

UDP协议是面向无毗连的传输层协议,提供面向事宜的简朴不行靠信息传输处事。

数据报文

在差异层传输的数据单元名称差异,在收集层传输的叫数据报,在传输层传输的叫报文段。

IP数据报

IP数据报名目如下图:

Android收集编程-TCP/IP协议

IP数据报

各个字段的具体声名:名称长度声名版本4bitIP协议的版本,今朝的IP协议版本号为4,下一代IP协议版本号为6首部长度4bitIP报头的长度,最大长度60字节(15*4),
分为牢靠部门的长度(20字节)和可变部门的长度处事范例8bitType Of Service总长度16bitIP报文的总长度。数据报的最大长度为 65535 字节标识16bit它是一个计数器,用来发生数据报的标识。

当IP报文长度高出传输收集的MTU(最大传输单位)时必需分片,此标识暗示统一个数据报的分片。符号3bitR、DF、MF三位,今朝只有后两位有用。

  • DF位:为1暗示不分片,为0暗示分片。
  • MF:为1暗示“更多的片”,为0暗示这是最后一片。片偏移13bit天职片在原先数据报文中相对首位的偏移位。

片偏移以8个字节为偏移单元。保留时刻8bitTTL (Time To Live)暗示数据报在收集中的寿命,其单元为秒。

在今朝的现实应用中,常以“跳”为单元。协议8bit指出IP报文携带的数据行使的哪种协议,以便目标主机的IP层能知道要将数据报上交到哪个历程。

TCP的协议号为6,UDP的协议号为17。

ICMP的协议号为1,IGMP的协议号为2.首部校验和16bit计较IP头部的校验和,搜查IP报头的完备性。源地点32bit标识IP数据报的源端装备。目标地点32bit标识IP数据报的目标地点。可选字段长度可变1~40 字节,用于增进IP数据报的节制成果。添补担保IP首部长度是4字节的整倍数

TCP报文

Android收集编程-TCP/IP协议

TCP报文

名称长度声名源端口16bit数据发送方的端标语目标端口16bit数据接管方的端标语序号32bit本数据报文中的的第一个字节的序号
(在数据流中每个字节都对应一个序号)确认号32bit但愿收到的下一个数据报文中的第一个字节的序号数据偏移4bit暗示本报文数据段间隔报文段有多远保存字段6bit保存为此后行使,但今朝应置为0紧张比特URG当值为1时暗示次报文段中有必要紧张处理赏罚确认比特ACK值为1时确认号有用,值为0时确认号无效复位比特RST值为1时暗示TCP毗连存在严峻的错误,必要从头举办毗连同步比特SYN值为1暗示这是一个毗连哀求或毗毗邻管报文终止比特FIN值为1暗示要发送的数据报已经发送完毕,必要开释传送毗连窗口16bitTCP毗连的一端按照缓存空间的巨细来确定本身接管窗口的巨细
限定发送放的窗口上限检讨和16bit用来检讨首部和数据两部门的正确性紧张指针字段16bit紧张指针指出在本报文段中的紧张数据的最后一个字节的序号选项字段长度可变TCP 首部可以有多达40字节的可选信息,
用于把附加信息转达给终点,或用来对齐其余选项

UDP报文

相对付TCP报文,UDP报文简朴了许多。

Android收集编程-TCP/IP协议

UDP报文

名称长度声名源端口16bit数据发送方的端标语目标端口16bit数据接管方的端标语包长度16bitUDP首部的长度和数据的长度之和。单元为字节校验和16bit用来检讨首部和数据两部门的正确性

TCP三次握手和四次挥手

TCP用三次握手来建设毗连,行使四次星散来开释毗连。

Android收集编程-TCP/IP协议

三次握手

三次握手

三次握手的目标是同步毗连两边的序列号和确认号并互换TCP窗口巨细的信息。

握手进程:

  • 第一次握手:成立毗连,客户端先发送毗连哀求报文,将SYN配置为1,Sequence Number为x。客户端进入SYN+SEND状态,守候处事器确认。
  • 第二次握手:处事器收到SYN报文。处事器收到客户端的SYN报文,必要对这个SYN报文举办确认,配置Acknowledgment Number为x+1(Sequence+1);同时,本身还要送法SYN动静,将SYN位置为1,Sequence Number为y;处事器将上述全部信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时处事器进入SYN+RECV状态。
  • 第三次握手:客户端收随处事器的 SYN+ACK报文段。然后将Acknowlegment Number设为y+1,向处事器发送ACK报文段,这个报文段发送完毕后,客户端端处事器都进入ESTABLISHED状态,完成TCP三次握手。

完成了三次握手,客户端和处事器就可以开始传送数据了。

四次挥手

当客户端和处事端传输数据完毕后,必要断开TCP毗连。TCP断开的进程,就是四次挥手。

  • 第一次挥手:客户端(也可所以处事器),配置Sequence Number和Acknowledgment Number,向处事器发送一个FIN报文段。此时客户端进入FIN_WAIT_1状态;这暗示客户端没稀有据发送给主机了。
  • 第二次挥手:处事器收到客户端发来的FIN报文段,向客户端回一个ACK报文段,Acknowledgement Number为Sequence Number加1;客户端进入FIN_WAIT_2状态,处事器进入CLOSE_WAIT状态;处事器汇报客户端,我赞成你的”封锁”哀求。
  • 第三次挥手:处事器向客户端发送FIN报文段,哀求封锁毗连,同时处事器进入LAST_ACK状态。
  • 第四次挥手:客户端收随处事器发送的FIN报文段,向主机发送ACK报文段,然后客户端进入TIME_WAIT状态,处事器收到客户端的ACK报文段往后,就封锁毗连,此时,客户端守候2MSL后一次没有到收到回覆,则证明处事端已正常封锁,那好,客户端也可以封锁毗连了。

TCP三次握手的须要性

防备处事器端因吸取了早已失效的毗连哀求报文,从而一向守候客户端哀求,最终导致形成死锁、挥霍资源。

TCP四次挥手的须要性

为了担保通讯两边都能关照对方,需开释、断开毗连。

为什么客户端封锁毗连前要守候2MSL时刻

  • MSL: 最大报文段保留时刻

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读