TCP/IP协议的工作过程(三次握手)
简单的说就是,第一次握手客户端向服务器发送数据请求连接, 第二次握手 就是服务器收到客户端的请求后,对客户端发送了连接请求,第三次握手就是客户端确认与服务器的连接请求.

IP是什么
IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
我们知道,因特网并不是一个单独的、封闭的网络,它是建立在全球众多网络上的一个网络集合。在因特网上存在许多不同类型的计算机,有的是PC,有的是MAC,还有的是运行各种系统的服务器。每个网络的结构也不相同,有的是总线型网络,有的是环型网络,有的是星型网络。那么是什么把这些计算机连接在一起呢?这就是TCP/IP协议。 什么是协议呢?简单说,协议是用一套技术术语描述某些事应该怎么做的规则。TCP/IP协议是将计算机组成网络的一系列协议的总和,其命名源于其中最重要的两个协议,一个是TCP ( Transmission Control Protocol)协议,称为传输控制协议,另一个是IP(Internet Protocol)协议,称为网间互联协议。TCP/IP协议能确保不同类型的计算机及网络能够在一起工作。TCP/IP的细节非常专业和繁杂,很少有人对它的具体内容感兴趣,但对它进行简单的了解,对于我们了解因特网还是有益的。TCP和IP究竟是如何工作的呢?在因特网上,数据不是一下子从本地传送到目的地的,而是要把数据分解成为小包——数据包,然后再进行传送。TCP的作用就是把所有的信息分解成多个数据包,每一个数据包用一个序号和一个接收地址来标定,TCP还会在数据包中插入一些纠错信息。所有的数据被分解成数据包之后,这些数据包开始在网络上传送,传送过程是由IP完成的,IP协议负责把数据包传送给远程主机,远程主机接收到数据包,根据TCP协议核查有无错误,如果发生错误,主机会要求重发这个数据包。所有数据包都被正确接收到以后,主机按数据包的序号重新把这些小数据包组合成为原来的信息。也就是说,IP的工作是把数据包从一个地方传递到另一个地方,TCP的工作是对数据包进行管理与校核,保证数据包的正确性。那么为什么要将数据分解成为数据包呢?这样做当然有好处。首先,由于这些数据包不必非在一起传送,所以通信线路可以把所有类型的数据包按它们自己的目的地从一个地方传送到另一个地方。当数据包全部到达自己的目的地后再重新组装。如果在传送过程中,某段线路的连接中断,控制数据包传送的计算机可以选择另外一条线路传送以后的数据包,不必“一棵树上吊死”。这个特性有些类似于日常的运输工作,如果要运送一台几百吨重的机床,人们也不会用一辆汽车将它运走,而是将机床分解成为重量适当的零件,再把各个零件分组标号,分别由多辆汽车运输,如果某段道路不通,后面的车辆完全可以另找一条路,等全部运输到位后,再将这些小零件组装成大机床。将数据分解成数据包的第二个好处,是如果某个数据包出错,计算机不必传送所有数据,只需单独传送出错的数据包即可。但是,我们也可以看出,将数据分解成小数据包也不是一点缺点没有的,由于每一个数据包都被加入一些特定信息,比如出发地点、目的地点及序号,这无疑加大了数据的传送量,但是数据分解成小包后,传送非常灵活、可靠,再加上网上传递数据非常迅速,所以多这么一些数据也就无所谓了。 难怪有人说TCP/IP协议是因特网的粘合剂。
简单的来说,IP就是你在互联网上的身份证,你做的任何事情都是记录下来,然后通过IP地址可以判断出来你是哪里人,也可以详细到,你在哪个网吧的那台机器上, 如果是ADSL之类的接入方式所得到的IP地址是不固定的,每次拨号上网所得到的IP地址是不一样的 如果是购买的固定IP,你每次上网后的IP地址都是一样的
为了使连入Internet的众多电脑主机在通信时能够相互识别,Internet中的每一台主机都分配有一个唯 一的32位地址,该地址称为IP地址,也称作网际地址。IP地址由4个数组成,每个数可取值0~255, 各数之间用一个点号"."分开,例如:202.103.229.38, 实际上,每个IP地址是由网络号和主机号两部分组成的。网络号表明主机所联接的网络,主机号标识了该网络上特定的那台主机。如:上例中202.103.229是网络 号,38是主机号。

TCP/IP协议的握手过程(转载)
三次握手后会在各自内存空间中形成一个队列空间,并建立 socket 。四次挥手目的是为了安全的销毁双方的连接释放内存,之前开辟的队列空间是为了对方服务的。第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。答:因为当 Server 端收到 Client 端的 SYN 连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。【问题2】为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?答:虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机 S 和 C 之间的通信,假定 C 给 S 发送一个连接请求分组,S 收到了这个分组,并发送了确认应答分组。按照两次握手的协定,S 认为连接已经成功地建立了,可以开始发送数据分组。可是,C 在 S 的应答分组在传输中被丢失的情况下,将不知道 S 是否已准备好,不知道 S 建立什么样的序列号,C 甚至怀疑 S 是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略 S 发来的任何数据分组,只等待连接确认应答分组。而 S 在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办?TCP 还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为 2 小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔 75 秒钟发送一次。若一连发送 10 个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

简述TCP/IP的工作原理
以下非原创,仅供参考! 下面以采用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报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接 收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

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报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/43574.html。