TCP/IP协议概述

栏目: 服务器 · 发布时间: 4年前

内容简介:建立一个TCP连接,需要经过一下几个步骤。由于在建立连接时至少需要交换3个分组,所以称为TCP的三路握手(three-way handshake)==值得注意的是,当客户端向服务器端发送大量的连接请求,但不回应服务器所发送的ACK时,会消耗大量服务器CPU和内存资源,导致服务器不能响应正常的网络请求,这就是拒接服务攻击中的SYN Flood。==

UDP是User Datagram Protocol的缩写,是一种无连接的传输层协议,提供不可靠信息传输服务。UDP具有以下特点:

  • 提供无连接服务,客户端向服务端发送数据是不必先建立连接,客户端创建一个套接字并向服务端发送一个数据报,然后客户端可以立即用这个套接字向另一个服务端发送其他数据。
  • 不能确保UDP数据报最终到达目的地。UDP对接受的数据报不发送确认,发送端不知道数据是否被正确接受,不会重发数据。
  • UDP传输数据较TCP快,占用系统资源少。

TCP

TCP是Transmission Control Protocol的缩写,是一种面向连接的,可靠的,基于字节流的传输层通信协议。该协议在主机间建立一个虚拟连接,以实现可靠的数据通信。因特网协议(IP)不能保证数据包准确发送个目标主机,而TCP不同,发送数据时,TCP要求对方在接受数据后返回一个确认,如果在某个时限内TCP没有接受到对方的确认,那么TCP会重新发送数据包。在接受数据的一方,如果收到无序的数据包,TCP还负责数据包的重新排序。

TCP具有以下特点:

  • 提供面向连接的服务,客户端与服务端通信时,必须首先建立连接。
  • 提供可靠的服务,当TCP向对方发送数据时,要求对方返回一个确认,如果没有接受到对方的确认,则TCP自动重传数据包。
  • TCP对发送的数据进行排序,为每个发送字节关联一个序列号,对方根据接受到的数据序列号,对接受数据排序,从而保证了数据顺序。
  • TCP提供流量控制,TCP总是告知对方它能够接收数据的字节数。
  • TCP连接是个全双工的,这意味着应用程序在任何时候,既可以发送数据也可以接受数据。

三次握手

建立一个TCP连接,需要经过一下几个步骤。

  1. 服务端准备接受客户端的连接。
  2. 客户端向服务器发起连接请求,此时客户端TCP发送一个SYN分节。
  3. 服务器端确认客户端的SYN(同步),同时也发送一个SYN分节,服务器以单个分节向客户端发送SYN和对客户端SYN的ACK(确认)。
  4. 客户端确认服务器的SYN。

由于在建立连接时至少需要交换3个分组,所以称为TCP的三路握手(three-way handshake)

==值得注意的是,当客户端向服务器端发送大量的连接请求,但不回应服务器所发送的ACK时,会消耗大量服务器CPU和内存资源,导致服务器不能响应正常的网络请求,这就是拒接服务攻击中的SYN Flood。==

TCP终止连接(四次挥手)

TCP用三个分节建立连接,用四个分节终止连接,具体如下所示。

  1. 连接中的一方首先执行关闭,该方被称为执行了一个主动关闭。该发送方的TCP向对方发送一个FIN(结束)分节,表示发送数据完毕。
  2. 接受方接收到了FIN,执行被动关闭,接受方TCP向发送方发送一个ACK。
  3. 接受方也执行关闭,着这导致接收方的TCP也发送一个FIN。
  4. 原发送方接收到了接收方的FIN后,它的TCP也返回一个ACK。

因为每个方向都需要发送一个FIN和返回一个ACK,所以关闭连接时一般需要四个分节。但也不排除步骤2和步骤3的ACK与FIN合成一个分节的情况。

端口

在网络上一台主机可以提供许多服务,例如Web服务,FTP服务等,这些服务可以通过IP地址来实现,但是主机IP地址与网络服务是一对多的关系,主机使用端口号区分不同的网络服务,对客户端来说,在连接服务器是,不仅要知道服务器的Ip地址,还要知道他的服务端口。服务器的IP地址和端口,对客户端应该是公开的。服务器方面,启动服务器时,网络服务绑定在某个端口上,以便于客户端进行数据通信。

端口是通过端口号来标记的,端口号是整数,范围是0-65535.对应于UDP和TCP两种协议端口,分为TCP端口和UDP端口。端口根据使用方式,可以分为以下几类:

  • 通用的端口号:0-1023,这些端口紧密绑定某些服务,通常表明了某种服务的协议,例如,80是HTTP通信端口,443是HTTPS通信端口,21是FTP通信端口。
  • 已注册端口号:1024-49151,供一般应用程序使用,开发Windows Sockets应用程序时,需要在这个端口号范围内选择端口。
  • 动态或私有端口:49152-65535

以上所述就是小编给大家介绍的《TCP/IP协议概述》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Effective JavaScript

Effective JavaScript

David Herman / Addison-Wesley Professional / 2012-12-6 / USD 39.99

"It's uncommon to have a programming language wonk who can speak in such comfortable and friendly language as David does. His walk through the syntax and semantics of JavaScript is both charming and h......一起来看看 《Effective JavaScript》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试