您的位置:首页 > 理论基础 > 计算机网络

计算机网络读书笔记-----传输层

2015-07-31 23:52 477 查看
终于到传输层了,一直想研究的TCP和UDP,上次面试就被虐了,这次大补一哈。

传输层向上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。

我们现在所说的通信都是“主机和主机之间的通信”,但是太过于笼统,严格的讲,两台主机之间的通信是主机上的应用进程之间的通信。由于通信的两个端点是源主机和目的主机之间的应用进程,因此应用进程之间的通信也称为端到端的通信。

图中的双向箭头指示逻辑上的通信线路,事实上真正的通信是沿着虚线传输的。



传输层还有一个重要的功能,就是分用和复用

复用是指:发送方的不同应用进程都可以被运输层的同一个协议所传输。

分用是指:运输层在剥去报文的首部时,都可以把这些数据正确的发送到目的应用进程上。



运输层根据UDP首部的端口号,将数据报通过相应的端口上交到最终的应用进程 。

传输层的两个主要的协议:

TCP:传输控制协议

UDP:用户数据报协议

UDP在传输数据之前不需要建立连接,另外一台主机收到UDP报文也不需要给出确认,所以UDP不提供可靠交付。

TCP则提供的是面向连接的服务,在传输数据之前必须先建立连接,数据传送完毕后要释放连接。由于TCP要提供可靠的、面向连接的运输服务,所以不可避免的增加了开销。

UDP用户数据报和IP数据报的区别:

虽然二者都提供的是无连接,不可靠的服务,但是IP数据报要经过好多路由
器的存储转发,而UDP用户数据报是在运输层端到端抽象出来的逻辑信道中
传送的


TCP连接和虚电路的区别:

虽然二者都提供的是面向连接。可靠的服务,但是TCP是在运输层端到端抽
象出来的逻辑通道中传送的,是一种可靠的全双工信道,这种信道根本不清
楚自己经过了哪些路由器。而且这些路由器也不清楚上面的运输层是否建立
的TCP连接。虚电路则是在通信的两台主机之间寻找一条合适的路由,这条
路由就是我们建立的虚电路,所有传送的分组都会沿着这条虚电路传送。


前面我们提到数据到达IP层后,会首先检查IP首部中的协议号,再传给相应协议的模块。如果是UDP则传给UDP模块,因为最终通信的是应用进程,所以TCP和UDP为了区分传输的协议是分发给主机上的哪个应用进程,定义了端口这个概念。

我们知道MAC地址标识的是同一条数据链路的不同主机,IP地址表示TCP/IP网络中互连的主机和路由器,传输层也定义了类似地址的概念:端口号。端口号用来表示一台计算机中进行通信的不同应用程序,所以又称为程序地址。


端口号由其使用的传输协议决定,所以不同的传输协议可以使用相同的端口号,由于传输协议是各自独立的进行处理,因此相互之间不会受到影响。

端口号的分类:

服务器端使用的端口号:一般称为熟知端口号或系统端口号,数值为0~1023

登记端口号:数值为1024~49151,一般为没有熟知端口号的应用程序使用。

客户端使用的端口号:数值为49152~65535,留给客户进程暂时使用,通信完成后,可以供其他客户进程使用。

一个TCP连接的时候由两个端点来标志,每一个端点必须用IP地址+端口号来决定,TCP连接的两个端点叫做套接字,套接字就是IP地址拼接上端口号,例如若IP为192.168.1.101,端口号为80,那么套接字就是192.168.1.101:80

所以有:

  套接字(socket) = (IP地址 : 端口号)


每一条TCP连接被通信两端的两个端点(两个套接字)确定

所以有:

 TCP连接 := {socket1,socket2} = {(IP1:port1),(IP2,port2)}


:=表示定义为。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: