搜索
首页 电脑/网络 软件 系统软件

基础概念是什么?

TCP要点学习:基础概念是什么?

全部回答

2018-03-30

45 0
    面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。 2。 什么是‘三次握手’? 在建立TCP连接之前,两个使用TCP的应用需要交换三次网络数据。
  这三个数据包的来往也就是所谓的‘三次握手’。 3。 报文段segment 我们说TCP是流式的网络协议,那是因为,应用程序可以一直往TCP写数据,无论你是逐byte,还是write a chunk,TCP对应用传给它的数据进行缓冲,直到缓冲数据达到一定尺寸才发送。
    可以看出,对于应用而言,TCP就像是stream的。但事实上,在TCP层,数据还是以块为单位的。这个块也就是所谓的报文段segment。 4。 什么是MTU? MTU即最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的大数据报大小(以字节为单位)。
    我个人目前的理解认为,MTU是一个网络在硬件层次上所允许的最大数据包大小,例如以太网大概是1500字节。 5。 什么是MSS? MSS即最大报文段大小(Maximum Segment Size),它是指TCP中一个报文段上附加的用户数据的最大大小。
   这里稍微说下应用层发送某个数据包时整个TCP/IP协议栈的操作过程:应用层将自己的用户数据传给TCP层(传输层),TCP在这些数据前添加自己的协议头(简单地理解为附加一些数据),然后将数据交给IP层(网络层),IP层附加自己的协议头,以此类推。
     虽然MSS意思是最大报文段大小,但事实上它是排除了协议头的用户数据。 6。 MTU and MSS ? 可以简单地给你一个这样的公示:mss = mtu - tcp_header_size - ip_header_size。
   而通常,IP协议附加的协议头大小和TCP的协议头大小都是20字节,所以通常的MSS为1460字节。   注意,这里说的数字并不见得正确,因为MSS是可以被协商的。各种协议头也可能被添加附加数据,但是他们的关系是这样的。
   7。 什么是窗口大小? 找本TCP的书看下TCP数据包的包头(本文多次使用数据包、报文的概念,我这里说的都是一样的),你会发现那个16位的窗口大小。   窗口这个域对于整个TCP协议都很重要。
  简单地说,窗口大小是指接收端的接收缓存的大小。上面说了,应用在发数据的时候,TCP会缓存这些数据,稍后发送。接收数据时也一样,TCP接收数据并缓存起来,直到应用调用recv之类的函数取数据时,TCP才将这些缓存数据清除。
   TCP发送端会根据TCP接收端那个接收缓存大小决定发送多少数据(如何知道这个缓存大小?稍后给概念)。  这样,TCP接收端的接收缓存才不至于缓冲溢出。 8。 提供可靠性的方法之一:ACK确认? 这里还不敢提序号、确认号、延时ACK等乱七八糟的东西。
  我只能告诉你,当TCP发送某些数据给TCP接收方时,TCP接收方会发回一个确认报文。TCP发送方收到这个确认报文后,就可以确认刚才发送的数据包成功到达。   为什么这个确认报文叫ACK确认(貌似是我临时给的概念:D)?再翻到TCP包头结构那张图,ACK是TCP包头中的1bit标志位,如同SYN、PSH、RST之类的标志一样,这些标志都有一个专有的用途。
  当ACK标志位被设置为1时,我就称其为ACK确认标志,因为ACK就是用于确认报文段的。     在上面所说的窗口大小中,我提到,发送方如何知道接收方的接收缓存大小呢?这也是通过确认报文段实现:当接收方接收到数据后,发送ACK确认数据包给发送方,就设置包头中的窗口域。
   9。 提供可靠性的方法之二:各种定时器 TCP中会设置很多计时器,这些定时器大多用于超时重传(老半天得不到回应,所以重传数据)。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报