博客参考http://www.cnblogs.com/gsk99/p/4920699.htmlhttp://www.cnblogs.com/iloverain/p/5619665.htmlhttp://blog.csdn。net/leo_walker/article/details/51627760TCP图TCP结构网络接口层物理层定义了与传输介质接口相关的一些特性,即机械特性、电气特性、功能特性、过程特性,需要完成并行传输和串行传输之间的传输转换。数据链路层为本层用户提供透明可靠的数据传输服务。透明是指本层传输的数据的内容、格式、编码不受限制,无需解释信息结构的含义;无差错数据链路,其具体方法包括帧同步、差错控制、流量控制、链路管理。数据链路层的主要协议有点对点协议PPP、CSMA/CD协议和以太网802.3。网际层(IP层)网际层向上只提供简单、灵活、无连接、尽力而为的数据报服务。互联网层不提供服务质量承诺,即传输的数据包可能会出现错误、丢失、重复和乱序,当然也没有数据包传递时限的保证。网际层的主要协议有IP协议、地址解析协议ARP和网际控制报文协议ICMP等。IP协议是网际层的核心,下一跳IP通过路由进行封装,交给网络接口层。IP数据报是一种无连接服务。ICMP是对Internet层的补充,可以回传消息。用于检查网络是否通畅(使用ping命令)。ARP通过已知IP找到主机的MAC地址。Transportlayer传输层提供应用进程之间端到端(process-to-process)的逻辑通信,具有复用和解复用功能,即发送方的不同应用进程可以使用相同的传输层协议传输数据;接收方的传输层在剥离报文头部后,可以正确地将数据传递给目的应用进程。传输层也会对报文进行差错控制,以提供可靠的传输。传输层的主要协议有用户数据报协议UDP和传输控制协议TCP应用层应用层为用户提供应用程序。应用层的主要协议有域名系统DNS、文件传输协议FTP、远程终端协议TELNET、超文本传输??协议HTTP、简单邮件传输协议SMTP、邮件阅读协议POP3和IMAP、动态主机配置协议DHCP等。DNS:提供域名解析服务,提供域名和IP地址之间的转换,使用53端口FTP:在异构网络中任意计算机之间传输文件,使用21端口TELNET:提供用户远程登录服务,使用23端口,使用明码传输,保密性差,简单方便HTTP:用于实现万维网上的各种链接,即万维网客户端程序与万维网服务器的连接,使用80端口SMTP/POP3,IMAP:提供邮件传输,用于控制信件的发送、中转和从邮件服务器读取邮件DHCP:自动为新加入网络的计算机分配IP地址TCP/IP协议ARP协议解决了网络中主机或路由器的IP地址和MAC地址的映射问题同一个局域网。假设一个以太网上有4台计算机,即计算机A、B、X、Y,通过TCP/IP协议进行通信,那么双方的数据链路层都必须知道对方的MAC地址。每台计算机都必须在自己的缓存区中存储一张IP地址到MAC地址的转换表,称为ARP表。它存储一系列最近使用的IP地址和与其通信的同一子网中计算机的MAC地址的映射。在主机初始启动时,ARP表是空的。现在源计算机A(192.168.3.1)想要与计算机B(192.168.3.2)通信。计算机A在发送信息之前,首先要获取计算机B的MAC地址的映射关系。RARP协议反向地址解析协议(RARP:ReverseAddressResolutionProtocol)反向地址解析协议(RARP)允许局域网中的物理机从网关服务器的ARP表或缓存中请求自己的IP地址。网络管理员在LAN网关路由器中创建一个表以将物理地址(MAC)映射到它们对应的IP地址。设置新机器时,其RARP客户端程序需要向路由器上的RARP服务器请求相应的IP地址。假设在路由表中设置了一条记录,RARP服务器会将IP地址返回给机器,存储起来以备后用。RARP可用于以太网、光纤分布式数据接口和令牌环LANDHCP协议DHCP是一种动态主机配置协议,常用于为主机动态分配IP地址。它提供了即插即用的联网机制,可以让一台电脑加入一个新的网络并获得一个IP地址,而无需人工参与;DHCP是一个应用层协议,它基于UDP;ICMP协议IP提供的是尽力而为的无连接服务,因此无法解决网络层的问题。为了提高IP数据报成功投递的几率,在网络层使用了ICMP(InternetControlMessageProtocol:互联网控制消息协议)协议,允许主机或路由器报告错误和异常情况。RIP协议路由信息协议RIP是一种基于分布式距离矢量的路由协议,属于内部网关协议(IGP)。RIP协议中的“距离”也称为“跳数”。路由器每经过一次,跳数就加1。协议规定,同一自治系统(A.S.)内的路由器每30秒与相邻路由器交换一次路由信息,动态建立路由表。在传输数据时,RIP会选择路由器数量最少的路由。OSPF协议OSPF(OpenShortestPathFirst,开放最短路径优先)。它于1989年开发,以克服RIP的缺点。OSPF的原理很简单,但实现起来比较复杂。“开放”表示OSPF协议不受某个厂商控制,而是公开发布的。“最短路径优先”是因为使用了Dijkstra的最短路径算法。BGP协议BGP(BorderGatewayProtocol)是一种用于在不同自治系统中的路由器之间交换路由信息的协议。它的基本功能是在自治系统之间自动交换无环路的路由信息??。它是一种外部网关协议(EGP),边界网关协议常用于因特网的网关之间。路由表包含已知路由器的列表、路由器可以到达的地址以及到达每个路由器的跳数。因为:1)互联网规模太大,系统间自主选择路由非常困难;2)对于自治系统之间的路由选择,找到最佳路由是很不现实的;3)自治系统之间的路由选择必须考虑相关策略;因此,BorderGatewayProtocolBGP只能尝试找到一条更优的到达目的网络的路由(而不是绕圈子),而不能找到一条最优路由。BGP使用“路径向量选择协议”,它与距离向量协议和链路状态协议有关。有很大的不同。BGP是一个应用层协议,它是建立在TCP之上的;IGMP协议IGMP协议用于在IP主机与其直接相邻的多播路由器之间建立和维护多播组成员关系。组播路由器不需要保存所有主机的成员关系,它只知道通过IGMP协议连接到每个接口的网段上是否有某个组播组的成员。主机只需要保存它加入了哪些组播组。简而言之,IGMP协议就是让连接到局域网的组播路由器知道局域网上主机上的某个进程是否加入或退出了某个组播组。IGMP应该看作是TCP/IP协议的一部分,它的工作可以分为两个阶段:1)当一个主机加入一个新的多播组时,该主机应该向该多播组的多播地址发送一个IGMP报文,声明它想成为该组的成员。本地组播路由器收到ICMP消息后,会将组成员关系转发给Internet上的其他组播路由器。2)因为组成员之间的关系是动态的,本地组播路由器定期轮询本地局域网上的路由器,看主机是否继续是组的成员。只要主机响应组,多播路由器就认为该组是活动的。如果多次查询仍然没有主机响应,则该组的成员资格不会被转发给其他多播路由器。TCP/IP数据封装TCP/IP数据解封装
