在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程,端口号拼接到IP地址,即构成了套接字(Socket)。在网络中采用发送方和接收方的套接字来识别断电。套接字,实际上是一个通信端点,即:
套接字=IP地址:端口号
她唯一的标识网络中的一台主机上的一个应用进程。
在网络通信中,主机A发送给主机B的报文,包含目的端口号和源端口号,源端口号是“返回地址”的一部分,即当主机B需要发回一个报文给主机A的时候,主机B到主机A的报文中的目的端口号便是主机A到主机B的报文中的源端口号(完全的返回地址是主机A的IP地址和源端口号)。
无连接服务与面向连接服务
TCP/IP协议族在IP层之上,使用了两个传输协议,一个是面向连接的传输控制协议(TCP),采用TCP的时候,传输层向上提供的是一条全双工的可靠逻辑信道,另一个是无连接的用户数据报协议(UDP),采用UDP的时候,传输层向上提供的是一条不可靠的逻辑信道。
TCP提供面向连接的可靠服务,通信双方在传送数据之前必须先建立连接,然后基于此链接进行可靠的数据传输,数据传输结束后要释放连接。TCP不提供广播或者多播服务,TCP为了实现可靠的数据传输,必须要增加许多的举措,比如确认、流量控制、计时器以及连接管理等。这不仅对事的协议数据单元的首部增大很多,还要占用需要的处理机资源。因此TCP主要适用于可靠性更重要的场合,如文件传输协议(FTP)、超文本传输协议(HTTP)、远程登录(HELNET)等。
UDP提供无连接的不可靠服务,通信双方在传送数据之前不需要建立连接,接收方的传输在收到UDP用户数据报后,无需给发送方发回任何确认。UDP在IP层之上进提供两个附加服务;多路复用和对数据的错误检查,IP层知道,怎么把分组投递给一台主机,但是不知掉怎么把她们投递给主机上的具体应用。UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文后,不需要给出任何确认。因为UDP比较简单,所以执行速度比较快、实时性好,使用UDP地应用主要包括小文件传送协议(TFTP),DNS,SNMP和实时传输协议(RTP)。
通信子网,包括,1,物理层,2,数据链路层,3,网络层,主要负责数据通信,资源子网是OSI参考模型的上三层,传输层的主要任务是向高层用户屏蔽下面通信子网的细节(如,网络拓扑,路由拓扑等)。
OSI参考模型中,提供端到端的透明数据传输服务,差错控制和流量控制的层是传输层。
传输层为进程之间提供逻辑通信。
关于传输层的面向连接服务的特性是,保证可靠和顺序交付。
UDP数据报,UDP尽在IP层的数据报服务至上增加了两个最基本的功能,复用和分用,以及差错检测。
如果应用开发者,选择UDP而非TCP,则应用程序几乎直接与IP打交道。
UDP协议的特点:
1,UDP无虚建立连接,因此UDP不会引入建立连接的时延。
2,无连接状态,TCP需要在端系统中维护连接状态,次连接状态包括接受和发送缓存,拥塞控制参数和序号与确认好的参数。而UDP,既不维护连接状态,也不跟踪这些参数。因此,当某些专用服务器使用UDP地时候,一般都能支持更多的活动客户机。
3,UDP地首部开销小,
4,UDP没有拥塞控制,因此网络中的拥塞不会影响源主机的发送速率,某些实时应用要求源主机以稳定的速率发送数据,能容忍一些数据的丢失,但不允许有太大的时间延迟。
5,UDP支持,一对一,一对多,多对一,多对多的交互通信。
UDP经常用于一次性传输较少数据的网络应用,如DNS,SNMP等,因为对于这些应用,如果采用TCP,则将为连接创建,维护和拆除带来不小的开销。UDP页经常用于多媒体应用,如IP电话,实时视频会议,流媒体等等。显然,可靠的数据传输对于这些应用来说并不是最重要的,但是TCP的拥塞控制会导致数据出现较大的延迟,这是他们不可容忍的。
UDP不保证可靠交付,但是这并不意味着应用对于淑静的要求是不可靠的,所有维护可靠性的工作都可以由用户在应用层完成。应用开发者,可以根据应用的需求来灵活的设计自己的可靠性机制。
UDP是面向报文的,发送方UDP对应用层交下来的报文,在添加首部后就向下交付给IP层,一次发送一个报文,记不合并,也不拆分,而是保留这些报文的边界。接收方UDP对IP层交上来UDP数据报,在去除首部后就原封不动的交付给上层应用进程一次交付一个完整的报文。因此,报文是不可分割的,是UDP数据报处理的最小单位。因此,应用程序,必须选择合适大小的报文,如果报文太长,UDP把他交给IP层后,可能会导致分片。如果报文太短的话,UDP把他交给IP层后,会是的IP数据包的首部的相对长度太大,两者都会降低IP层的效率。