简述TCP/IP的体系结构,并简要说明各层的功能?
第五层——应用层:应用层是体系结构中最高的。直接为用户的应用进程提供服务。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。第四层——运输层:运输层负责向两个主机中进程之间的通信提供服务。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能。复用,就是多个应用层进程可同时使用下面运输层的服务。分用,就是把收到的信息分别交付给上面应用层中相应的进程。运输层主要使用以下两种协议:1、传输控制协议TCP面向连接的,数据传输的单位是报文段,能够提供可靠的交付。2、用户数据包协议UDP无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。第三层——网络层:网络层主要包括以下两个任务:1、负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层残生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。2、选中合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。第二层——数据链路层:数据链路层常简称为链路层,我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间传送数据是直接传送的(点对点),这时就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点之间的链路上“透明”地传送帧中的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。典型的帧长是几百字节到一千多字节。注:”透明”是一个很重要的术语。它表示,某一个实际存在的事物看起来却好像不存在一样。”在数据链路层透明传送数据”表示无轮什么样的比特组合的数据都能够通过这个数据链路层。因此,对所传送的数据来说,这些数据就“看不见”数据链路层。或者说,数据链路层对这些数据来说是透明的。在接收数据时,控制信息使接收端能知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。第一层——物理层:物理层在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。
从协议分层模型方面来讲,tcp/ip 由四个层次组成:网络接口层、网间网层、传输层、应用层。其中:网络接口层这是tcp/ip软件的最低层,负责接收ip数据报并通过网络发送之,或者从网络上接收物理帧,抽出ip数据报,交给ip层。网间网层负责相邻计算机之间的通信。传输层提供应用程序间的通信。应用层向用户提供一组常用的应用程序,比如电子邮件、文件传输 访问、远程登录等。
分7层 应用层/表示层/会话层/传输层/网络层/数据链路层/网络接口层/物理层

图解TCP建立连接全过程
TCP是因特网中的传输层协议,使用三次握手协议建立连接,下面是TCP建立连接的全过程。 上图画出了TCP建立连接的过程。假定主机A是TCP客户端,B是服务端。最初两端的TCP进程都处于CLOSED状态。图中在主机下面的是TCP进程所处的状态。A是主动打开连接,B是被动打开连接。首先A向B发出连接请求报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段不能携带数据,但要消耗掉一个序号。这时,A进入SYN-SENT状态。B收到请求后,向A发送确认。在确认报文段中把SYN和ACK位都置为1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。请注意,这个报文段也不能携带数据,但同样要消耗掉一个序号。这时B进入SYN-RCVD状态。A收到B的确认后,还要向B给出确认。确认报文段的ACK置为1,确认号ack=y+1,而自己的序号seq=x+1。这时,TCP连接已经建立,A进入ESTABLISHED状态,当B收到A的确认后,也会进入ESTABLISHED状态。以上给出的连接建立过程就是常说的TCP三次握手。为什么A还要发送一次确认呢?这主要是为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。所谓已失效的连接请求报文段是这样产生的。A发送连接请求,但因连接请求报文丢失而未收到确认,于是A重发一次连接请求,成功后建立了连接。数据传输完毕后就释放了连接。现在假定A发出的第一个请求报文段并未丢失,而是在某个网络节点长时间滞留了,以致延误到连接释放以后的某个时间才到达B。本来这是一个早已失效的报文段。但B收到此失效的连接请求报文段后,就误以为A又发了一次新的连接请求,于是向A发出确认报文段,同意建立连接。假如不采用三次握手,那么只要B发出确认,新的连接就建立了。由于A并未发出建立连接的请求,因此不会理睬B的确认,也不会向B发送数据。但B却以为新的运输连接已经建立了,并一直等待A发来数据,因此白白浪费了许多资源。 采用TCP三次握手的方法可以防止上述现象发生。例如在刚才的情况下,由于A不会向B的确认发出确认,连接就不会建立。下面留个思考题给大家:如果在TCP第三次握手中的报文段丢失了会发生什么情况?

tcp/ip的工作原理
这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。CP/IP协议的组成TCP/IP协议在一定程度上参考了OSI的体系结构。OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。(1)应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在TCP/IP协议中,它们被合并为应用层一个层次。(2)由于运输层和网络层在网络协议中的地位十分重要,所以在TCP/IP协议中它们被作为独立的两个层次。以上内容参考:百度百科-TCP/IP协议
TCP/IP协议工作原理: 中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。 通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
(1) 在源主机上应用层将一串字节流传给传输层; (2) 传输层将字节流分成TCP段,加上TCP包头交给互联网络(IP)层;(3) IP层生成一个包,将TCP段放人其数据域,并加上源和目的主机的IPIP包交给数据链路层;(4) 数据链路层在其帧的数据部分装IP包,发往日的主机或IP路由器;(5) 在目的主机,数据链路层将数据链路层帧头去掉,将IP包交给互联网层;(6) IP层检查IP包头,如果包头中的校验和与计算出来的不一致,则丢弃该包;(7) 如果校验和一致,IP层去掉IP头,将TCP段交给TCP层,TCP层检查顺序号来判断是否为正确的TCP段;(8) TCP层为TCP包头计算TCP头和数据。如果不对,TCP层丢弃这个包,若对,则向源主机发送确认;(9) 在目的主机,TCP层去掉TCP头,将字节流传给应用程序;(10) 于是目的主机收到了源主机发来的字节流,就像直接从源主机发来的一样。 实际上每往下一层,便多加了一个报头,而这个头对上层来说是透明的,上层根本感觉不到下面报头的存在。如下图3-10所示,假设物理网络是以太网,上述基于TCP/IP的文件传输(FTP)应用打包过程便是一个逐层封装的过程,当到达目的主机时,则从下而上去掉包头。
TCP/IP 的工作原理 下面以采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其中应用层传输文件采用文件传输协议(FTP)。TCP/IP协议的工作流程如下:●在源主机上,应用层将一串应用数据流传送给传输层。●传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。●在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。●链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。●在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。●网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。●传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。 ●在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

简述TCP/IP工作原理
TCP/IP模型包括:● 网络层● 网际层● 传输层● 应用层一、网络层是模型的最低层,负责将帧放进线路,或从线路中取下帧。TCP/IP的网络层对应着OSI的物理层和数据链路层。这也就是为什么这一层包含物理通信介质和在这些介质上传送帧的通信协议。二、网际层网际层(互联网层):负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。● ICMP网际控制消息协议:问题出现时向IP发送错误报告。我们平时用的ping用它。● IGMP网际分组管理协议:向路由器通知多播组成员的存在。广播不能跨路由器,路由器是隔离广播的,但它隔离不了多播,它可以跨路由器。● ARP地址解析协议:判断主机的硬件地址。三、传输层传输层是TCP/IP模型中非常特殊和重要的一层,它包括了OSI传输层、会话层、表示层和应用层的各部分功能,包括两个传输协议(TCP协议和UDP协议)在计算机之间提供通信对话。四、应用层应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
以下非原创,仅供参考! 下面以采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其中应用层传输文件采用文件传输协议(FTP)。TCP/IP协议的工作流程如下:1.在源主机上,应用层将一串应用数据流传送给传输层。2.传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。3.在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。4.链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。5.在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。6.网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。7.传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。8.在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接 收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。
IP协议的工作原理: 三次握手原理 :TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此 时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。
在互联网上源主机的协议层与目的主机的同层协议通过下层提供的服务实现对话。在源和目的主机的同层实体称为对等实体(Peer entities)或叫对等进程,它们之间的对话实际上是在源主机上从上到下然后穿越网络到达目的主机后再从下到上到达相应层。下面以使用TCP协议传送文件(如FTP应用程序)为例说明了TCP/IP的工作原理。(1) 在源主机上应用层将一串字节流传给传输层;(2) 传输层将字节流分成TCP段,加上TCP包头交给互联网络(IP)层;(3) IP层生成一个包,将TCP段放人其数据域,并加上源和目的主机的IPIP包交给数据链路层;(4) 数据链路层在其帧的数据部分装IP包,发往日的主机或IP路由器;(5) 在目的主机,数据链路层将数据链路层帧头去掉,将IP包交给互联网层;(6) IP层检查IP包头,如果包头中的校验和与计算出来的不一致,则丢弃该包;(7) 如果校验和一致,IP层去掉IP头,将TCP段交给TCP层,TCP层检查顺序号来判断是否为正确的TCP段;(8) TCP层为TCP包头计算TCP头和数据。如果不对,TCP层丢弃这个包,若对,则向源主机发送确认;(9) 在目的主机,T

简答TCP协议的工作过程
你大概说的是3步握手吧,这跟传真机的5部握手很类似。 下面的资料希望对你有用TCP/IP 是很多的不同的协议组成,实际上是一个协议组,TCP 用户数据报表协议(也称作TCP 传输控制协议,Transport Control Protocol。可靠的主机到主机层协议。这里要先强调一下,传输控制协议是OSI 网络的第四层的叫法,TCP 传输控制协议是TCP/IP 传输的6 个基本协议的一种。两个TCP 意思非相同。)。TCP 是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。通过每个TCP 传输的字段指定顺序号,以获得可靠性。是在OSI参考模型中的第四层,TCP 是使用IP 的网间互联功能而提供可靠的数据传输,IP 不停的把报文放到网络上,而TCP 是负责确信报文到达。在协同IP 的操作中TCP 负责:握手过程、报文管理、流量控制、错误检测和处理(控制),可以根据一定的编号顺序对非正常顺序的报文给予从新排列顺序。关于TCP 的RFC 文档有RFC793、RFC791、RFC1700。在TCP 会话初期,有所谓的“三握手”:对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP 在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP 总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。由于TCP 需要时刻跟踪,需要额外开销,使得TCP 的格式有些显得复杂。下面就让我们看一个TCP 的经典案例,这是后来被称为MITNICK 攻击中KEVIN 开创了两种攻击技术:TCP 会话劫持SYN FLOOD(同步洪流)在这里我们讨论的时TCP 会话劫持的问题。先让我们明白TCP 建立连接的基本简单的过程。为了建设一个小型的模仿环境我们假设有3 台接入互联网的机器。A 为攻击者操纵的攻击机。B 为中介跳板机器(受信任的服务器)。C 为受害者使用的机器(多是服务器),这里把C 机器锁定为目标机器。A 机器向B机器发送SYN 包,请求建立连接,这时已经响应请求的B 机器会向A 机器回应SYN/ACK表明同意建立连接,当A 机器接受到B 机器发送的SYN/ACK 回应时,发送应答ACK 建立A 机器与B 机器的网络连接。这样一个两台机器之间的TCP 通话信道就建立成功了。B 终端受信任的服务器向C 机器发起TCP 连接,A 机器对服务器发起SYN 信息,使C 机器不能响应B 机器。在同时A 机器也向B 机器发送虚假的C 机器回应的SYN 数据包,接收到SYN 数据包的B 机器(被C 机器信任)开始发送应答连接建立的SYN/ACK 数据包,这时C 机器正在忙于响应以前发送的SYN 数据而无暇回应B 机器,而A 机器的攻击者预测出B 机器包的序列号(现在的TCP 序列号预测难度有所加大)假冒C 机器向B 机器发送应答ACK 这时攻击者骗取B 机器的信任,假冒C 机器与B 机器建立起TCP 协议的对话连接。这个时候的C 机器还是在响应攻击者A 机器发送的SYN 数据。TCP 协议栈的弱点:TCP 连接的资源消耗,其中包括:数据包信息、条件状态、序列号等。通过故意不完成建立连接所需要的三次握手过程,造成连接一方的资源耗尽。通过攻击者有意的不完成建立连接所需要的三次握手的全过程,从而造成了C 机器的资源耗尽。序列号的可预测性,目标主机应答连接请求时返回的SYN/ACK 的序列号时可预测的。(早期TCP 协议栈,具体的可以参见1981 年出的关于TCP 雏形的RFC793 文档)TCP 头结构TCP 协议头最少20 个字节,包括以下的区域(由于翻译不禁相同,文章中给出相应的英文单词):TCP 源端口(Source Port):16 位的源端口其中包含初始化通信的端口。源端口和源IP 地址的作用是标示报问的返回地址。TCP 目的端口(Destination port):16 位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。TCP 序列号(序列码,Sequence Number):32 位的序列号由接收端计算机使用,重新分段的报文成最初形式。当SYN 出现,序列码实际上是初始序列码(ISN),而第一个数据字节是ISN+1。这个序列号(序列码)是可以补偿传输中的不一致。TCP 应答号(Acknowledgment Number):32 位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK 控制位,这个值表示一个准备接收的包的序列码。数据偏移量(HLEN):4 位包括TCP 头大小,指示何处数据开始。保留(Reserved):6 位值域,这些位必须是0。为了将来定义新的用途所保留。标志(Code Bits):6 位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。窗口(Window):16 位,用来表示想收到的每个TCP 数据段的大小。校验位(Checksum):16 位TCP 头。源机器基于数据内容计算一个数值,收信息机要与源机器数值结果完全一样,从而证明数据的有效性。优先指针(紧急,Urgent Pointer):16 位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG 标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。选项(Option):长度不定,但长度必须以字节。如果没有选项就表示这个一字节的域等于0。填充:不定长,填充的内容必须为0,它是为了数学目的而存在。目的是确保空间的可预测性。保证包头的结合和数据的开始处偏移量能够被32 整除,一般额外的零以保证TCP 头是32 位的整数倍。标志控制功能URG:紧急标志紧急(The urgent pointer) 标志有效。紧急标志置位,ACK:确认标志确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP 报头内的确认编号栏内包含的确认编号(w+1,Figure:1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。PSH:推标志该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理telnet 或rlogin 等交互模式的连接时,该标志总是置位的。RST:复位标志复位标志有效。用于复位相应的TCP 连接。SYN:同步标志同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP 连接时有效。它提示TCP 连接的服务端检查序列编号,该序列编号为TCP 连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP 序列编号看作是一个范围从0 到4,294,967,295 的32 位计数器。通过TCP 连接交换的数据中每一个字节都经过序列编号。在TCP 报头中的序列编号栏包括了TCP 分段中第一个字节的序列编号。FIN:结束标志带有该标志置位的数据包用来结束一个TCP 回话,但对应端口仍处于开放状态,准备接收后续数据。服务端处于监听状态,客户端用于建立连接请求的数据包(IP packet)按照TCP/IP协议堆栈组合成为TCP 处理的分段(segment)。分析报头信息: TCP 层接收到相应的TCP 和IP 报头,将这些信息存储到内存中。检查TCP 校验和(checksum):标准的校验和位于分段之中(Figure:2)。如果检验失败,不返回确认,该分段丢弃,并等待客户端进行重传。查找协议控制块(PCB{}):TCP 查找与该连接相关联的协议控制块。如果没有找到,TCP 将该分段丢弃并返回RST。(这就是TCP 处理没有端口监听情况下的机制) 如果该协议控制块存在,但状态为关闭,服务端不调用connect()或listen()。该分段丢弃,但不返回RST。客户端会尝试重新建立连接请求。建立新的socket:当处于监听状态的socket 收到该分段时,会建立一个子socket,同时还有socket{},tcpcb{}和pub{}建立。这时如果有错误发生,会通过标志位来拆除相应的socket 和释放内存,TCP 连接失败。如果缓存队列处于填满状态,TCP 认为有错误发生,所有的后续连接请求会被拒绝。这里可以看出SYN Flood 攻击是如何起作用的。丢弃:如果该分段中的标志为RST 或ACK,或者没有SYN 标志,则该分段丢弃。并释放相应的内存。发送序列变量SND.UNA : 发送未确认SND.NXT : 发送下一个SND.WND : 发送窗口SND.UP : 发送优先指针SND.WL1 : 用于最后窗口更新的段序列号SND.WL2 : 用于最后窗口更新的段确认号ISS : 初始发送序列号接收序列号RCV.NXT : 接收下一个RCV.WND : 接收下一个RCV.UP : 接收优先指针IRS : 初始接收序列号当前段变量SEG.SEQ : 段序列号SEG.ACK : 段确认标记SEG.LEN : 段长SEG.WND : 段窗口SEG.UP : 段紧急指针SEG.PRC : 段优先级CLOSED 表示没有连接,各个状态的意义如下:LISTEN : 监听来自远方TCP 端口的连接请求。SYN-SENT : 在发送连接请求后等待匹配的连接请求。SYN-RECEIVED : 在收到和发送一个连接请求后等待对连接请求的确认。ESTABLISHED : 代表一个打开的连接,数据可以传送给用户。FIN-WAIT-1 : 等待远程TCP 的连接中断请求,或先前的连接中断请求的确认。FIN-WAIT-2 : 从远程TCP 等待连接中断请求。CLOSE-WAIT : 等待从本地用户发来的连接中断请求。CLOSING : 等待远程TCP 对连接中断的确认。LAST-ACK : 等待原来发向远程TCP 的连接中断请求的确认。TIME-WAIT : 等待足够的时间以确保远程TCP 接收到连接中断请求的确认。CLOSED : 没有任何连接状态。TCP 连接过程是状态的转换,促使发生状态转换的是用户调用:OPEN,SEND,RECEIVE,CLOSE,ABORT 和STATUS。传送过来的数据段,特别那些包括以下标记的数据段SYN,ACK,RST 和FIN。还有超时,上面所说的都会时TCP 状态发生变化。序列号请注意,我们在TCP 连接中发送的字节都有一个序列号。因为编了号,所以可以确认它们的收到。对序列号的确认是累积性的。TCP 必须进行的序列号比较操作种类包括以下几种:①决定一些发送了的但未确认的序列号。②决定所有的序列号都已经收到了。③决定下一个段中应该包括的序列号。对于发送的数据TCP 要接收确认,确认时必须进行的:SND.UNA = 最老的确认了的序列号。SND.NXT = 下一个要发送的序列号。SEG.ACK = 接收TCP 的确认,接收TCP 期待的下一个序列号。SEG.SEQ = 一个数据段的第一个序列号。SEG.LEN = 数据段中包括的字节数。SEG.SEQ+SEG.LEN-1 = 数据段的最后一个序列号。如果一个数据段的序列号小于等于确认号的值,那么整个数据段就被确认了。而在接收数据时下面的比较操作是必须的:RCV.NXT = 期待的序列号和接收窗口的最低沿。RCV.NXT+RCV.WND:1 = 最后一个序列号和接收窗口的最高沿。SEG.SEQ = 接收到的第一个序列号。 SEG.SEQ+SEG.LEN:1 = 接收到的最后一个序列号。
TCP/IP协议的工作流程如下: 1.在源主机上,应用层将一串应用数据流传送给传输层。2.传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。3.在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。4.链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。5.在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。6.网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。7.传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。 8.在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

本文由 在线网速测试 整理编辑,转载请注明出处。