传输层
为向他上面的应用层提供服务,主要是相互通信的进程之间提供逻辑通信服务,面向通信的最高层。也是用户功能的最底层。
主机之间通信,只有主机的协议栈才有运输层。
主机与主机之间的通信是进程与进程之间的通信与交换数据。
交换数据的协议有TCP/UDP。
TCP:面向连接的协议:包括用户数据报协议,传输控制协议,传输的数据单元是 运输协议数据单元。称之为tcp报文段。在传输数据之前需要建立连接,数据传输完毕,需要释放连接。增加了一些开销,流量控制,计时器,连接管理等。
端口号的管理:协议层抽象出来的端口和物理设备的端口不是一个概念,协议层抽象出来的端口是软件端口,硬件端口是不同设备进行交互的端口。软件端口是协议进行与运输实体进行层间交互的一种地址。
TCP/IP的运输层用16位的端口号进行标志一个端口,不同的计算机中,不同的端口号没有关联。
客户端进行通信时,必须知道对方的ip地址和端口号,服务端使用的端口号049151,有登记在册。
客户端使用端口号:49125~65535,在客户端程序选择时使用,通信结束,端口号也不存在。
Tcp协议:
1、面向连接的
2、一条tcp只能有2个端点。
3、面向提供可靠交付的服务
4、提供全双工的通信
5、面向字节流
TCP连接
1、tcp连接的端点叫套接字{IP地址,端口号}
2、停止等待协议保证传输不会出错,
1)A发生,B接收,接收时,检测出错,丢弃字节流。然后A重传,即超时重传。A发生时保留自己的副本,重传等待时间比传输往返时间长。
2)确认丢失和确认迟到,A总是重复重传和收不到确认,就认为不可以进行通信。B总是收到重复的字节流,会丢弃重复的字节流,不交付,然后向A发生确认。
3)Tcp是面向字节流的,但是传送的数据单元是报文段。
1、源端口,目的端口,
2、序号 seq
3、确认号,序号和确认号一般成对出现。
4、数据偏移
5、保留
6、紧急uRG
7、确认ACK,ack=1,确认字段才有效。
8、推送 psh
9、复位rst=1,tcp连接出现严重错误,需要进行重新建立连接。
10、同步syn syn=1ack=0,表示是一个请求报文。响应报文是需要syn=1,ack=1
11、终止fin,fin=1表示报文发送完毕。
12、窗口,窗口的值是接收方可以接收发送方发送多少数据。
13、检验和
14、紧急指针
15、选项,报文总长度减去报文首部的长度。报文长度是556,选项是536,首部是20

10-04 11:08