博文参考
http://www.cnblogs.com/gsk99/p/4920699.html
http://www.cnblogs.com/iloverain/p/5619665.html
http://blog.csdn.net/leo_walker/article/details/51627760
TCP图解

TCP结构
网络接口层
物理层定义与传输媒体的接口有关的一些特性,即机械特性、电气特性、功能特性、过程特性,并须要完成并行传输和串行传输之间的转换。
数据链路层向该层用户提供透明的和可靠的数据传输服务。 透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠性是指在传输过程当中将物理层提供的可能出错的物理链接改形成为逻辑上无差错的数据链路,其具体的方法有帧同步、差错控制、流量控制、链路管理。
数据链路层中的主要协议有点对点协议PPP,CSMA/CD协议,以太网802.3。
网际层(IP层)
网际层向上只提供简单灵活的、无链接的、尽最大努力交付的数据报服务。网际层不提供服务质量的承诺,即所传输的分组可能出错、丢失、重复和失序,固然也不保证分组交付的时限。
网际层中主要协议有IP协议,地址解析协议ARP和网际控制报文协议ICMP等。
IP协议是网际层的核心,经过路由选择将下一跳IP封装后交给网络接口层。IP 数据报是无链接服务。
ICMP是网际层的补充,能够回送报文。用来检测网络是否通畅(使用ping命令)。
ARP是经过已知IP,寻找对于主机的MAC地址。
运输层
运输层为应用进程之间提供端到端(进程到进程)的逻辑通讯,并具备复用和分用的功能,即发送方不一样的应用进程均可以使用同一个运输层协议传送数据;接收方的运输层在剥去报文的首部后可以把这些数据正确交付到目的应用进程。运输层还将对报文进行差错控制,以提供可靠传输。
运输层中主要协议有用户数据报协议UDP和传输控制协议TCP
应用层
应用层为用户提供应用程序。
应用层中主要协议有域名系统DNS,文件传输协议FTP,远程终端协议TELNET,超文本传输协议HTTP,简单邮件传送协议SMTP,邮件读取协议POP3和IMAP,动态主机配置协议DHCP等。
DNS:提供域名解析服务,提供域名到IP地址之间的转换,使用端口53
FTP:在异构网络中任意计算机之间传送文件,使用端口21
TELNET:提供用户远程登陆服务,使用端口23,使用明码传送,保密性差、简单方便
HTTP:用于实现万维网上的各类连接,即万维网客户程序与万维网服务器之间的链接,使用端口80
SMTP/POP三、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:Reverse Address Resolution Protocol) 反向地址转换协议(RARP)容许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里建立一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序须要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便往后使用。 RARP 可使用于以太网、光纤分布式数据接口及令牌环LAN
DHCP协议
DHCP是动态主机配置协议,经常使用于给主机动态地分配IP地址, 他提供了即插即用联网的机制,这种机制容许一台计算机加入新的网络和获取IP地址而不用手工参与; DHCP是应用层协议, 他是基于UDP的;
ICMP协议
IP提供的是尽最大努力交付的无链接服务,所以并不能解决网络层中的数据报丢失、重复、延迟或乱序等问题,为了提升IP数据报成功交付的机会, 在网络层使用ICMP(Internet Control Message Protocol:Internet控制报文协议)协议来容许主机或者路由器报告差错和异常状况.
RIP协议
路由信息协议RIP是一种分布式的基于距离向量的路由选择协议, 属于内部网关协议(IGP)。RIP协议中的“距离”也称为“跳数”,每通过一个路由器,跳数就加1。协议规定: 同一自治系统(A.S.)中的路由器每30秒会与相邻的路由器交换路由信息,以动态的创建路由表。当传输数据时,RIP将选择一条具备最少路由器的路由。
OSPF协议
OSPF (Open Shortest Path First, 开放最短路径优先)。它是为克服RIP的缺点在1989年开发出来的。OSPF的原理很简单,但实现起来却较复杂。“开放”代表OSPF协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是由于使用了Dijkstra最短路径算法。
BGP协议
BGP(Border Gateway Protocol)是一种不一样自治系统的路由器之间交换路由信息的协议, 它的基本功能是在自治系统间自动交换无环路的路由信息, 他是一种外部网关协议(EGP), 边界网关协议经常应用于互联网的网关之间. 路由表包含已知路由器的列表, 路由器可以到达的地址以及到达每一个路由器的跳数.
因为:
1)因特网的规模太大, 使得自治系统之间路由选择很是困难;
2)对于自治系统之间的路由选择, 要寻找最佳路由是很不现实的;
3)自治系统之间的路由选择必须考虑有关策略;
所以, 边界网关协议BGP只能是力求寻找一条可以到达目的网络且比较好的路由(不能兜圈子), 而非要找到一条最佳路由.
BGP采用的是”路径向量选择协议”, 他与距离向量协议和链路状态协议都有很大的区别. BGP是应用层协议, 他是基于TCP的;
IGMP协议
IGMP协议用来在IP主机和与其直接相邻的组播路由器之间创建、维护组播组成员关系。 组播路由器不须要保存全部主机的成员关系,它只是经过IGMP协议了解每一个接口链接的网段上是否存在某个组播组的组成员。而主机只须要保存本身加入了哪些组播组。
简而言之,IGMP协议是让链接在本地局域网上的组播路由器知道本局域网上是否有主机上的某个进程参加或退出了某个组播组。
IGMP应视做TCP/IP协议的一部分, 其工做能够分为两个阶段:
1)当某个主机加入新的组播组时, 该主机应向组播组的组播地址发送一个IGMP报文, 声明本身要成为该组的成员. 本地组播路由器收到ICMP报文后, 将组成员关系转发给因特网上其余的组播路由器.
2)由于组成员的关系是动态的, 本地组播路由器要周期性地探询本地局域网上的路由器, 以便知道这些主机是否还继续是组的成员. 只要对某个组有一个主机响应, 那么组播路由器就认为这个组是活跃的. 但一个组在通过几回探询以后仍然没有一个主机响应, 则再也不将该组的成员关系转发给其余的组播路由器.
TCP/IP数据封装

TCP/IP数据解封装
