应用层:定义了应用程序使用互联网的规范,负责处理特定的应用程序细节。几乎各种不同的 TCP/IP 协议实现都会提供一些通用的应用程序,如 FTP(文件传输协议)、SMTP(简单邮件传输协议)、Telnet(远程登录)等等。
3.1.1 TCP/IP协议组
TCP/IP协议组是一组实现支持因特网和大多数商业网络运行的协议栈的网络传输协议。这个名称来源于其中两个最重要的协议:传输控制协议(TCP)和因特网协议(IP),它们也是最先定义的两个协议。
应用层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。其中的网络协议有:HTTP(Hypertext Transfer Protocol),超文本传输协议;Https(HTTP over SSL),安全超文本传输协议;Telnet (Teletype over the Network),网络终端协议,可通过网络提供远程登陆;FTP (File Transfer Protocol), 文件传输协议,可用于交互式文件传输;SMTP (Simple Mail Transfer Protocol),简单邮件传输协议,用来发送电子邮件(运行在TCP协议上);DNS(Domain Name Service),域名服务,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上);NTP (Network Time Protocol),网络时间协议,用于网络同步(运行在UDP协议上);SNMP (Simple Network Management Protocol),简单网络管理协议,用于网络信息的收集和网络管理。
传输层提供端对端的通信。包括传输控制协议TCP和用户数据报文协议UDP。
①传输控制协议TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的运输层通信协议,由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成传输层所指定的功能。TCP层是位于IP层之上,应用层之下的中间层。TCP数据报首部如下图所示。
图3:TCP包首部格式
应用层向TCP层发送用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段传给IP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
②用户数据报文协议UDP (User Datagram Protocol)是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。在TCP/IP模型中, UDP只提供数据的不可靠传递。由于缺乏可靠性,UDP应用一般必须允许一定量的丢包、出错和复制。有些应用,比如TFTP,如果需要则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、实时多媒体游戏和IP电话 (VoIP)就是典型的UDP应用。UDP首部格式如图4所示,UDP首部字段由4个部分组成,其中源端口、校验和两个部分是可选的,如果不用,那么置为零。
图4:UDP首部格式
网络上的众多使用UDP协议的关键应用在一定程度上是相似的。这些应用包括域名系统(DNS)、简单网络管理协议(SNMP)、动态主机配置协议(DHCP)和路由信息协议(RIP)等等。
而在网际层中最核心的协议是IP协议。此外还有ICMP,RIP,OSPF,IS-IS,BGP,ARP,RARP等。网际协议或互联网协议(Internet Protocol)是用于报文交换网络的一种面向数据的协议。IP首部如图5所示。
图5:IP首部格式
数据在IP互联网中传送时会被封装为报文或数据包。IP协议提供了一种“不可靠的”数据包传输机制(也被称作“尽力而为”);也就是说,它不保证数据能准确的传输。如果应用需要保证可靠性,一般需要采取其他的方法,例如利用IP的上层协议控制。 基于FPGA的以太网通信数据传输的设计与实现(5):http://www.751com.cn/tongxin/lunwen_6604.html