http-tcpip协议

http-tcpip协议,第1张

为了简化网络的复杂度,网络通讯的不同方面被分解为多层次的结构,每一层只与紧挨着的上层或者下层进行交互,将网络分层,这样可以修改,甚至替换每一层的软件,只要层于层之间的接口保持不变,就不会影响到其他层.

网络分层的两种模型

OSI(Open System Interconnection Reference Model):开放系统互联参考模型

TCP/IP 协议

超文本传输协议(HyperText Transfer Protocol HTTP)

一种无状态的,已请求/应道方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的草文本信息系统灵活互动.

HTTP协议的请求报文和响应报文的结构基本相同,有3部分组成

面向连接的,可靠的,基于字节流的传输层通讯协议

特点

 基于连接的:数据传输之前需要建立连接

 全双工:双向传输(客户端和服务端传输时双向)

 字节流:不限制数据大小,打包成报文段,保证有序接受,重复报文自动丢弃(在实际环境中,会出现tcp在传输中并不只会一条线路,可能有多条线路传输数据,本地是有序的发送,传输过程中运营商会分派很多线路,传输的数据被切割成多个片段,由不同的tcp连接传输,可能导致接收端有乱序 重复的数据产生,tcp接收端会重新排序和去重)

 流量缓冲,:解决双发处理能力的不匹配(发送端能力强接收端能力弱,就需要流量缓冲,将消息放到队列里一点点处理)

 可靠性传输:保证可达,丢包时通过重试机制实现可靠性(如果网络抖动造成的重试,tcp接收端去重,每次发送完数据会接受到接收端传来的反馈,如果没有则重复发送)

 拥塞控制:防止防落出现恶行的拥塞

 TCP的3次握手

 Tcp的报文

1)源端口:sourceport 源端口和IP地址的作用是标识报文的返回地址。端口是一般是客户端随机生成

2)目的端口:destport端口指明接收方计算机上的应用程序接口。服务端端口比如80 8080

TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。

(sequence number/acknowledement number)是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。e.g.一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400。所以序号确保了TCP传输的有序性。确认号,即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK标志为1时才有效。比如建立连接时,SYN报文的ACK标志位为0。Tcp每一次传输是块的并不是一次全部传送,序号来排序,序号和确认号保证传输的可靠性.

4bits。由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转化为10进制为15,15*32/8 = 60,故报头最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值

1)URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。

2)ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。SYN=1和ACK=1是服务端返回应答报文,三次握手的第二部.

3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

4)RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。当SYN=1和ACK=0就是客户端发送报文用来建立连接.

6)FIN:

finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。四次挥手中用来确认即将断开连接的标识符.

滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小时一个16bit字段,因而窗口大小最大为65535。

奇偶校验,此校验和是对整个的 TCP 报文段,包括 TCP 头部和 TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。

只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。

最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN标志为1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的零,以保证TCP头是32的整数倍。

TCP 报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

Tcpip是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。Tcpip常被通称为TCP/IP协议族,简称TCP/IP。tcpip协议中,Tcp协议在传输层,ip协议在网际层。

TCP/IP协议是用来提供点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。

TCP/IP分为tcp协议和ip协议:

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。ip协议是互联网协议地址,缩写为IP地址,是分配给用户上网使用的网际协议 的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。

扩展资料

TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议。

如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。

TCP/IP协议的基本传输单位是数据包,TCP协议负责把数据分成若干个数据包,并给每个数据包加上包头,包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式。

IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方,如果传输过程中出现数据丢失、数据失真等情况。

TCP/IP协议数据的传输基于TCP/IP协议的四层结构,数据在传输时每通过一层就要在数据上加个包头,其中的数据供接收端同一层协议使用,而在接收端,每经过一层要把用过的包头去掉,这样来保证传输数据的格式完全一致。

参考资料来源:百度百科 -  TCP/IP协议

微软发布的Windows XP SP2增加了TCP同时连接尝试的限制并且设定为一个很小的值10,系统的TCP连接尝试超过这个值的时候,系统会因为安全因素而拒绝连接。这样做的本意是为了防止冲击波之类的蠕虫病毒,但这样一来某些p2p软件就遭殃了,连接繁忙时可能导致所有网络连接都无法进行了。我们可以在 控制面板-管理工具-时间查看器-系统 里看到来源为tcpip的ID为4226的警告:“TCP/IP 已经达到并发 TCP 连接尝试次数的安全限制。” 微软对这个警告描述如下:Event 4226, EVENT_TCPIP_TCP_CONNECT_LIMIT_REACHED[链接]。这个问题对BitComet的内网用户尤其明显,因为内网用户只能通过主动发起TCP连接来连上别的客户端。 有一个第三方补丁http://dl.pconline.com.cn/html_2/1/82/id=40598&pn=0.html可以更改tcpip.sys从而修正系统的连接数限制问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7333915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存