一、简介
TCP/IP是用于因特网的通信协议,指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol),其定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。
二、TCP/IP四层结构及各层协议
1.网络接口层
网路接口层对应OSI模型“物理层+数据链路层”,实现网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输,即对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
该层的主要协议为HDLC(高级链路控制协议)、PPP(点对点协议)、SLIP(串行线路接口协议)
2.网络层
负责网络间的寻址数据传输,网络层具有以下三个基本功能:
- MTU分片:MTU,指的是当路由数据从一种类型的网络运送到另一种类型的网络时网络能够承载的最大数据块。这个最大数据块,即MTU,是会发生变化的,当数据从支持较大MTU的介质移动到支持较小MTU介质的时候,数据块就必须缩小,以便匹配参与传输的两个MTU中较小的一个MTU。在MTU分片任务进行的过程中,由于当较小的数据包传输到容许较大数据包的网络上时,这些数据包并不需要组合成长度较大的数据包,故该任务仅需要一次单向转换,但任务必须在传输过程中完成。
- 寻址:寻址功能定义了一种机制,即TCP/IP网络中的所有网卡都必须与标识每一个网卡的专用的、唯一的比特位模式相对应,这个比特位模式也标识了网卡所属的网络,比如我们的本地网络。
- 路由:路由定义了将数据包从发送方转发给接收方的机制,在从发送方到接收方的转发过程中,可能需要数个中间中继过程。路由功能不仅包含在成功传递的过程中,而且还提供了跟踪传递性能的方法,以及在发生传递失效时报告错误的方法。
该层的主要协议如下:
- 网际协议(InternetProtocol,IP),即IP协议。主要功能包括寻址和分段。该协议负责把数据包从发送方路由到接收方。可以根据数据包包头中包括的目的地址将数据包传送到目的地址,在此过程中IP负责选择传送的道路,这种选择道路称为路由功能。如果有些网络内只能传送小数据包,IP可以将数据包重新组装并在报头域内注明。
- Internet控制消息协议(Internet Control Message Protocol,ICMP):ICMP协议处理基于IP路由和网络行为的消息,特别是与“数据流状况”和出错相关的信息。ICMP设备间传递各种差错和控制信息,他对于收集各种网络信息,诊断和排除各种网络故障具有至关重要的作用。总结来说,ICMP用来传递差错、控制、查询等信息。
- 地址解析协议(Address Resolution Protocol,ARP):ARP协议在特定电缆网段上将数字IP网络地址转换为媒体访问控制地址(MAC),一般情况下ARP协议总是应用在数据包传递的最后阶段。
- 反向地址解析协议(Reverse Address Resolution Protocol,RARP):RARP协议将MAC层地址转换为数字IP地址。ARP和RARP协议是连接第2层和第3层之间的桥梁,都要操作MAC和IP地址,绝大多数协议栈的实现都是在数据链路层中包含了ARP和RARP功能。两者实现IP地址和物理地址(MAC地址)之间的转换。
- 自举协议(Bootstrap Protocol,BOOTP):BOOTP协议是动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)的前导协议,DHCP管理网络IP地址分配和其他IP配置数据。BOOTP支持网络设备从网络上获取启动和配置数据,而不是从本地硬盘上获取这些数据。
- 路由信息协议(Routing Information Protocol,RIP):RIP协议定义了原始距离向量和本地网内用于本地路由区域的最基本路由协议。距离向量,本质上是链路中路由器个数的整数,称为跳数(hop),是发送方和接收方之间的数据包必须通过的路由器个数,RIPv1有一个4位的跳数字段,允许的最大跳数位15。
- 开放式最短路径优先协议(Open Shortest Path First,OSPF):OSPF协议定义了一个本地网内用于本地或内部路由区域、广泛使用的链路状态路由协议。
- 边界网关协议(Border Gateway Protocol,BGP):BGP协议定义了一种连接到公共互联网主干网或互联网中其他路由区域的广泛应用路由协议,在这些路由区域里,多方联合负责管理数据流。
3.传输层
负责提供可靠的传输服务。
传输层协议提供的基本功能包括从发送方到接收方数据的可靠传输,还提供传输前必要的出站消息分段,以及把数据交付给应用层之前重组分段以便进一步处理。该层的主要协议如下:
传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。
TCP是面向连接的(connection-oriented)的协议,UDP是无连接的(connectionless)的协议。TCP发送数据之前在发送方和接收方之间协商并维持连接,数据成功发送得到正确确认,数据丢失或错误得到重新传输请求。UDP则以一种称为“尽最大努力交付(Best-effort Delivery)”的方式简单地发送数据,在接收方没有任何后续的检验。
TCP和UDP相比较,TCP比UDP更加可靠,但相对的速度也就更慢一些。TCP可以在协议层提供可靠的交付服务,UDP不能。
4.应用层
负责实现一切与应用程序相关的功能,如文件传输、网络管理。
该层的主要协议如下:
- 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
-
超文本传输协议(HTTP)是应用层的一个协议,是万维网生态系统的核心。HTTP最初的用途是传输文本和图像,但Web服务模型的发展需要大量与Web相关的协议和组件来建立运行于Web浏览器里的工具。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
-
域名服务协议(Domain Name System,DNS)就是用来将域名解析到IP地址的一种协议,当然,也可以将IP地址转换为域名的一种协议;DNS协议基于UDP和TCP协议的,端口号53,用户到服务器采用UDP,DNS服务器通信采用TCP;大型运营商、互联网机构等会向公众提供免费的DNS服务,例如,谷歌的8.8.8.8 8.8.4.4 阿里巴巴223.5.5.5 223.6.6.6;如果DNS服务器down掉了,那么你只能通过IP地址来访问服务了。
-
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它使每台计算机在发送或中转信件时能找到下一个目的地。通过使用指定的服务器,把Email寄到收信人的服务器上。SMTP服务器是遵循SMTP协议的邮件服务器,用来发送或中转电子邮件。首先,客户端需要建立一个与SMTP服务器的TCP连接,端口一般为25。在连接建立之后,客户端和服务器先执行一些应用层的握手操作,让SMTP服务器知道客户端的信息,并且对客户端需求做出响应等。在SMTP握手阶段,客户端向SMTP服务器分别指定发件人和收件人的电子邮件地址。握手阶段完毕,SMTP服务器把客户端发出的邮件消息添加到发信队列中,通过TCP提供的可靠数据传输服务把该消息准确地传送到收件人的服务器。
-
网络文件系统(Network Files System,NFS),nfs文件系统协议允许网络中的主机通过tcp/ip协议进行资源共享,nfs客户端可以像使用本地资源一样读写nfs服务端的资料,需要注意的是nfs服务依赖于rpc服务与外部通信,所以必须确保rpc服务能正常注册服务的端口信息才能正常使用nfs服务,redhat rhel7系统中的rpc服务已经默认运行了,无需再配置rpc服务。