OSI 模型 |
TCP/IP 参考模型 |
设备 |
||||
7 |
应用层 |
Application layer |
Http,SMTP,FTP,TelNet |
应用层 |
HTTP,TFP,DNS |
|
6 |
表示层 |
Representation layer |
|
|
||
5 |
会话层 |
Session layer |
ASAP,WinSock |
|
||
4 |
传输层 |
Transportation layer |
TCP,UDP |
传输层 |
TCP,UDP,RTP,SCTP |
|
3 |
网络层 |
Network layer |
IP |
网络互链层 |
IP |
|
2 |
数据链路层 |
Data link layer |
以太网,令牌环 |
网络接口层 |
以太网, |
|
1 |
物理层 |
Physics layer |
线路,无线电,光纤 |
|
HTTP-Hypertext Transfer Protocol, 超文本传输协议:主要用于普通的浏览。
HTTPS-Hypertext Transfer Protocol Over Secure Socket Layer, or HTTP over SSL, 安全超文本传输协议:HTTP协议的安全版本。
FTP- File Transfer Protocol, 文件传输协议:用于文件传输。
POP3-Post Office Protocol, Version 3, 邮局协议:收邮件用。
SMTP-Simple Mail Transfer Protocol, 简单邮件传输协议:用于发邮件用。
TELNET-Teletype over the Network, 网络电传:通一个终端(Terminal)登陆到网络。
SSH-Secure Shell: 用于替代安全性差的网络协议,用于加密安合登录用。
运行在UDP协议上的协议:
· BOOTP(Boot Protocol,启动协议),应用于无盘设备。
· NTP(Network Time Protocol,网络时间协议),用于网络同步。
· 其他:
· DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
· ECHO(Echo Protocol,回绕协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
· SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
· DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
· ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
传输层的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。
在TCP/IP协议组中技术上位于这个层的动态路由协议通常被认为是网络层的一部分;一个例子就是OSPF(IP协议89)。
TCP(IP协议6)是一个“可靠的”、面向连结的传输机制,它提供一种可靠的字节流保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。这是它与UDP不同之处,这在实时数据流或者路由高网络层丢失率应用的时候可能成为一个缺陷。
较新的SCTP也是一个“可靠的”、面向连结的传输机制。它是面向纪录而不是面向字节的,它在一个单独的连结上提供了通过多路复用提供的多个子流。它也提供了多路自寻址支持,其中连结终端能够被多个IP地址表示(代表多个實體接口),这样的话即使其中一个连接失败了也不中断。它最初是为电话应用开发的(在IP上传输SS7),但是也可以用于其他的应用。
UDP(IP协议号17)是一个无连结的数据报协议。它是一个“尽力传递”(best effort)或者说“不可靠”协议——不是因为它特别不可靠,而是因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用TCP协议。
UDP的典型性应用是如流媒体(音频和视频等)这样按时到达比可靠性更重要的应用,或者如DNS查找这样的简单查询/响应应用,如果建立可靠的连结所作的额外工作将是不成比例地大。
DCCP目前正由IEFT开发。它提供TCP流动控制语义,但对于用户来说保留了UDP的数据报服务模型。
TCP和UDP都用来支持一些高层的应用。任何给定网络地址的应用通过它们的TCP或者UDP端口号区分。根据惯例使一些大众所知的端口与特定的应用相联系。
RTP是为如音频和视频流这样的实时数据设计的数据报协议。RTP是使用UDP包格式作为基础的会话层,然而据说它位于因特网协议栈的传输层。
正如最初所定义的,网络层解决在一个单一网络上传输数据包的问题。类似的协议有X.25和ARPANET的Host/IMP Protocol。
随着因特网思想的出现,在这个层上添加了附加的功能,也就是将数据从源网络传输到目的网络。这就牵涉到在网络组成的网上选择路径将数据包传输,也就是因特网。
在因特网协议组中,IP完成数据从源发送到目的的基本任务。IP能够承载多种不同的高层协议的数据;这些协议使用一个唯一的IP协议号进行标识。ICMP和IGMP分别是1和2。
一些IP承载的协议,如ICMP(用来发送关于IP发送的诊断信息)和IGMP(用来管理多播数据),它们位于IP层之上但是完成网络层的功能,这表明了因特网和OSI模型之间的不兼容性。所有的路由协议,如BGP、OSPF、和RIP实际上也是网络层的一部分,尽管它们似乎应该属于更高的协议栈。
网络接口层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。这个过程能够在网卡的软件驱动程序中控制,也可以在韧体或者专用芯片中控制。这将完成如添加报头准备发送、通过實體媒介实际发送这样一些数据链路功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。
然而,链路层并不经常这样简单。它也可能是一个虚拟专有网络(VPN)或者隧道,在这里从网络层来的包使用隧道协议和其他(或者同样的)协议组发送而不是发送到實體的接口上。VPN和隧道通常预先建好,并且它们有一些直接发送到實體接口所没有的特殊特点(例如,它可以加密经过它的数据)。由于现在链路“层”是一个完整的网络,这种协议组的递归使用可能引起混淆。但是它是一个实现常见复杂功能的一个优秀方法。(尽管需要注意预防一个已经封装并且经隧道发送下去的数据包进行再次地封装和发送)。