1.本章内容
面向连接的协议和无连接的协议
端口和套接字
tcp
udp
2.传输层的功能
(1)为网络应用程序提供接口
即为应用程序提供访问网络的途径。不仅仅是把数据传递到目标计算机,而是目的计算机的目标应用。
(2)多路复用/多路分解机制
表示从不同的应用程序和计算机接收数据,再把数据传递到目的计算机的接收程序。
第一点,传输层必须能够同时支持多个网络程序和管理传递给网际层的数据流,
第二点,可以让一个应用程序同时保持与多台计算机的连接。
(3)错误检测、流量控制和验证
协议系统需要一种全面机制来确保发送端与接收端之间的数据传输。
质量保证通常会在收益与代价之间寻找平衡,精细的质量保证系统会提高传输可靠性,但需要以增加网络流量和处理时间为代价,故提供了以下两种方式,
传输控制协议(TCP):TCP提供了完善的错误控制和流量控制,能够确保数据正常传输,它是一个面向连接的协议;
用户数据报协议(UDP):UDP只提供了非常基本的错误检测,用于不需要TCP精细控制功能的场合,它是一个无连接的协议。
3.面向连接的协议
会在通信计算机之间建立并维护一个连接,并且在通信过程中监视连接的状态。
即通过网络传输的每个数据包都会有一个确认,发送端计算机会记录状态信息来确保每个数据包都被正确无误的接收了,并且在需要时会重发数据,当数据传输结束后,发送端和接收端计算机会以适当方式关闭连接。
4.无连接的协议
以单向方式向目的发送数据报,不承担通知目的计算机关于数据发送的职责,目的计算机接收到数据后也不需要向源计算机返回状态信息。
5.端口和套接字
在tcp/ip系统中,应用程序可以使用端口号,通过tcp或udp指定数据目的地。
端口是一个预定义的内部地址,充当应用程序和传输层之间的通路。(如客户端计算机通常利用tcp端口21来访问服务器上的ftp)
6.多路复用/多路分解
套接字寻址系统使得tcp和udp能够执行传输层另一个重要任务:多路复用和多路分解。
多路复用是指把多个来源的数据导向一个输出,
多路分解是指把从一个来源接收到的数据发送到多个输出。
多路传输/多路分解让tcp/ip协议栈较低层的协议不必关心哪个程序在传输数据(与应用程序相关的操作都有传输层完成了,数据通过一个与应用程序无关的管道在传输层与网际层之间传递)
多路传输/多路分解的关键就在于套接字地址。
7.tcp 面向连接的协议的重要特性
(1)面向流的处理
tcp以流的方式处理数据,即一个字节一个字节的接收数据,然后组成长度不定的段,再传递到网际层。
(2)重新排序
如果数据传递的次序错误,tcp模块能够对数据重新排序来恢复原始数据。
(3)流量控制
确保数据传输不会超过目的计算机接收数据的能力。面对不同性能的计算机,这种流量控制就显得很重要。
(4)优先级与安全
国防方面的要求,对tcp系统的配置要有安全级别和优先级
(5)适当的关闭
像重视连接一样重视关闭,关闭前会确保数据都被发送和接收了
8.路由器转发数据但不处理传输层
9.tcp的数据格式
10.udp 无连接传输协议
(1)udp并不是没有错误检测,只是具备基础的错误检测,错误检测能力有限(udp数据报中有一个伪报头,包含了数据报的目的地址,从而提供了发现数据报错误传输的手段)
(2)没有重新排序功能,在局域网中一般不会产生因网络延迟造成的数据排序错误
(3)upd的主要用途是把数据报传递给应用层
(4)udp数据报的报头和数据载荷
11.防火墙和端口
防火墙是一个系统,保护局域网不被来自internet的未授权用户攻击。
如,为了发起与服务器的安全shell(SSH)会话,客户端计算机必须向SSH的熟知端口(TCP22)发送一个请求,如果担心外部入侵者会通过SSH访问我们的服务器,一个方法是配置服务器来停止使用22端口,但也会造成局域网中的合法用户无法通过SSH访问,另一种方法是安装防火墙,通过配置防火墙来阻断外部对tcp端口22的访问,同时不会影响局域网对它的访问。
防火墙通常会阻断可能产生安全威胁的任何或全部端口,网络管理员一般会阻断对全部端口的访问,除了必须的端口,如处理email的端口。
防火墙不仅能阻断外网对内网的访问,也能阻断内网对外网的访问。