tcp计算机网络网络

7、传输层(计算机网络笔记)

2017-02-28  本文已影响89人  yjaal

一、传输层的功能

1.1 OSI和DoD模型

1
说明:TCP/IP协议栈中,传输层有两个协议TCPUDP

1.2 传输层协议和应用层协议之间的关系

2
说明:常用的应用层协议使用的端口有http=TCP+80https=TCP+443RDP=TCP+3389ftp=TCP+21、共享文件夹=TCP+445SMTP=TCP+25PoP3=TCP+110telnet=TCP+23DNS=UDP+53。这里相关的服务与应用层协议之间的关系是一个侦听的关系。当数据被发送到接收端的时候,接收端相应启动的服务会进行侦听。服务使用TCPUDP的端口侦听客户的请求,客户端使用IP地址定位服务器,使用目标端口定位服务,可以在服务器网卡上设置只开放必要的端口,实现服务器的网络安全。一些命令:

1.3 传输层功能

为相互通信的应用进程提供了逻辑通信

3
说明:传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信),还要对收到的报文进行差错检测,提供面向连接和无连接的服务。

1.4 传输层的端口

4
说明:

分类:

FTP:21
telnet:23
SMTP:25
PoP3:110
DNS:53
HTTP:80
https:443
RDP:3389

二、传输层协议UDP和TCP

2.1 UDP协议

2.1.1 主要特点

此协议是无连接的,即发送数据之前不需要建立连接;使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制;是面向报文的,没有拥塞控制,很适合多媒体通信的要求;支持一对一、一对多、多对一和多对多的交互通信;首部开销小,只有八个字节。域名解析就是使用此协议。

2.1.2 UDP协议

5
6
说明:UDP协议的首部如上图。其中长度是指UDP用户数据报的长度。

2.2 TCP协议

2.2.1 概述

此协议是面向连接的传输层协议,每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一),此协议提供可靠交付的服务,提供全双工通信,面向字节流。

2.2.2 TCP的连接

此协议把连接作为最基本的抽象,每一条TCP连接有两个端点,连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端点叫做套接字(socket)。端口号拼接到IP地址即构成了套接字。socket=(IP:port),每一条TCP连接唯一的被通信两端的两个端口(即两个套接字)所确定。

2.2.3 可靠传输原理

7
说明:在传输过程中如果无差错的情况则如图(a),发送端发出一个包,接收端接收到之后反馈一个消息,让发送端发送第二个包,一次类推,直到数据发送完毕。这就是停止等待协议,因为如果接收端不反馈成功接收的消息,发送端是不会发送下一个数据报的。如果在传输过程中出现错误,则发送端需要等待,等待一个稍微大于往返时间(RTT)的时间段,如果没收到接收端的反馈,则超时重传。

2.2.4 TCP报文段的首部格式

11
说明:在发送数据时,有时候数据需要分成很多段发送,比如第一段为0、1、2、3、4这五个数据组成的一个段,而序号就是指每一段数据中第一个小数据(即0)在整个要发送的数据报中所占的位置(也是0)。当这个数据段被接收端收到之后会发送一个确认号,此时的确认号就是5,即要求发送端发送序号为5的数据段。TCP的首部大多数情况为20个字节,但是也有情况不是,而此时就需要使用数据偏移(首部长度)表示从第几个字节开始为真正的数据部分了,首部最长是60=(0xFF)*4个字节,这里的0xFF即数据偏移能够表示的最大十六进制数。

窗口占两个字节,比如此时有两个主机A、BA在发送数据时可以缓存的字节为65530个字节,于是需要将这个窗口发送给B,看B的接收缓存是不是能够满足最大的窗口字节,需要统一。同样,当BA发送数据时也需要统一窗口。
紧急指针只有在标志位URG=1的情况下才有作用,这表示TCP报文中数据部分中前面的多少个字节需要紧急处理。
选项中有很多信息,比如最大TCP报文的长度为多少个字节,是不是支持选择性确认SACK。如果不够四个字节则会进行填充,以达到四个字节。

2.2.5 TCP如何实现可靠传输

2.2.6 超时重传时间的选择

TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。

13
超时重传时间应略大于上面得出的加权平均往返时间RTTsRFC2988推荐的α值为1/8

2.2.7 TCP的流量控制

用于解决发送端和接收端处理数据能力不同的问题。比如A发送数据很快,但是B的处理能力有限,很快A发送的数据就将B的缓存占满了,不能再接收数据了,比如先进行一部分处理才能再次接收,于是B需要向A告知这一点,这就是流量控制。在传输数据的过程中会根据自己的处理能力实时反馈相应的窗口,如果不能处理数据,则将窗口设置为零,先处理一部分数据之后再反馈相关信息,当接收端表示能够继续接收数据了,于是向发送端发送新的窗口和确认号,但是这个反馈信息如果丢失了怎么办?这里发送端会定时的发送窗口测定的数据报来检查接收端的窗口。

2.2.8 TCP拥塞控制

2.2.9 TCP的运输连接管理

传输连接有三个阶段,即:连接建立、数据传送和连接释放。TCP连接的建立都是采用客户服务器方式。主动发起连接建立的应用进程叫客户(client),被动等待连接建立的应用进程叫做服务器(server)。

上一篇下一篇

猜你喜欢

热点阅读