1 TCP/IP协议模型
TCP/IP 四层 | 协议 | |
4 | 应用层 | Telnet、FTP、SMTP、SNMP、HTTP等 |
3 | 传输层 | TCP、UDP |
2 | 网络层 | IP、ICMP、IGMP等 |
1 | 链路层 |
2 各个协议层的功能
2.1 链路层
有时也称作为数据链路层或网络接口层。
用来处理连接网络的硬件部分,通常包括操作系统、硬件的设备驱动程序、计算机中对应的网络接口卡、及处理与电缆(或其他任何传输媒介)的物理接口细节。硬件上的范畴均在链路层的作用范围之内。
2.2网络层
有时也称为互联网络层。
负责相邻计算机之间的通信。
(1)处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口;
(2)处理输入数据报:首先检测其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达,则转发该数据报;
(3)处理路径、流控、拥塞等问题。
该层协议包括:IP、ICMP、IGMP、ARP、RARP
IP(Internet Protocol):互联网协议
ICMP(Internet Control Message Protocol):互联网控制报文协议
IGMP(Internet Group Management Protocol):互联网管理协议
ARP是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址;
RARP是反向地址解析协议,通过MAC(物理地址(一个主机只有一个MAC地址))地址确定IP地址。
ICMP是网络层的补充,可以回送报文,用来检测网络是否畅通;
Ping命令就是发送ICMP的echo包,通过回送的echo relay进行网络测试。
2.4 传输协议
在TCP/IP模型中,传输层的公共是使源端主机和目标主机上的对等实体可以进行会话。
该层协议:TCP,UDP
TCP(Transmission Control Protocol):传输控制协议
UDP(User Datagram Protocol):用户数据报协议
TCP协议是一个面向连接、可靠的协议。它将一台主机发出的字节流无差错地发往互联网其他主机上。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送过来的大量数据。
UDP协议是一个不可靠、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。
2.4应用层
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现。
主要处理特定的应用程序细节。
该层协议:
基于TCP协议包括FTP、TELNET、HTTP、DNS
基于UDP协议包括SNMP、TFTP、NTP、DNS、NFS
DNS(Domain Name Service)域名解析协议,提供域名到IP地址之间的转换,使用端口53
FTP(File Transfer Protocol):文件传输协议,端口号为21;
Telnet(Remote Terminal Protocol):远程终端协议,端口号为23;
HTTP(Hypertext Transfer Protocol):超文本传输协议,端口号为80;
SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,端口为25;
TFTP(Trivial File Transfer Protocol):简单文件传输协议,端口为69;
NTP(Network Time Protocol,):网络时间协议
NFS(Network File System):网络文件协议
3. TCP/IP结构对应OSI
OSI | 传输单位 | 协议 |
| TCP/IP 四层 | 协议 | ||
7 | 应用层 |
| FTP、Telnet、SMTP、TFTP、HTTP、POP3、NNTP、IMAP4、HTTPS、SNMP、DNS、SMB、BOOTP、NFS、NCP等。 |
| 4 | 应用层 | Telnet、FTP、SMTP、SNMP、DFS、NFS、HTTP等 |
6 | 表示层 |
|
|
| |||
5 | 会话层 |
|
|
| |||
4 | 传输层 | 数据段 | TCP、UDP、SPX等 |
| 3 | 传输层(主机到主机层) | TCP、UDP |
3 | 网络层 | 数据包 | IP、ARP、IPX、DDP、OSPF、RARP、ICMP、NetBEUI等 |
| 2 | 网络层(互联层) | IP、ICMP、IGMP、ARP、RARP等 |
2 | 数据链路层 | 数据帧 | LLC、SDLC、HDLC、MAC、PPP、STP、帧中继、CSMA/CA等 |
| 1 | 链路层(网络接口层) |
|
1 | 物理层 | 比特 |
|
|
4 TCP/IP通讯过程
上图是两台主机通过TCP/IP协议的通信过程,其中应用层使用的是FTP协议。除物理层是实际传输协议的,其他对等层只是虚拟通信(画的是虚线),对等层一般遵照相同的协议。上层传输数据只与相邻上下层有关系。TCP及以下层是由操作系统内核实现,是处理通信细节。而应用层程序是通过socket编程实现细节。
5 TCP/IP数据包的封装
上图描述的是TCP/IP数据包封装的过程。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装。IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输。
上图对应的是两台计算机在同一网段的情况。
6跨路由器通讯过程
如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示
链路层直线还有物理层,指的是电信号的传递方式,比如现在以太网通用的网线、光钎等。
链路层有以太网、令牌环等网络标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测带冲突就自动重发)、数据差错校检等工作。交换机是工作在链路层的网络设备。
网络层的IP协议是构成Internet的基础。Internet上的主机通过IP地址来标识,Internet上有大量路由器负责根据IP地址选择合适的路径转发数据包,数据包从Internet上的源主机到目的主机往往要经过十多个路由器。路由器是工作在第三层的网络设备,同时兼有减缓及的功能,可以在不同的链路层接口之间转发数据包。
网络层负责点到点的传输(“点”指主机或路由器),而传输层负责端到端的传输(“端”指源主机到目的主机)。传输层可选择TCP或UDP协议。
7 Multiplexing过程
目的主机接收到数据包后,如何经过各层协议栈到达应用程序?整个过程如下。
以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报,然后交给相应的协议处理。
假如是IP数据报,IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP,然后交给相应的协议处理。
假如是TCP段或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用数据交给哪个用户进程。
IP地址是标识网络中不同主机的地址,而端口号就是同一台主机上不同进程的地址,IP地址和端口号合起来标识网络中唯一的进程。
8 使用 ARP 协议凭借 MAC 地址进行通信
IP 间的通信依赖 MAC地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的MAC 地址来搜索下一个中转目标。这时,会采用ARP 协议(Address Resolution Protocol)。ARP是一种用以解析地址的协议,根据通信方的 IP地址就可以反查出对应的 MAC地址
9 DNS
DNS(Domain names System) 和HTTP协议一样是处于应用层的服务,提供域名到IP地址之间的解析服务。
互联网之间是通过IP地址通信的,但是IP地址并不符合认得记忆习惯,人喜欢记忆有意义的字词。所以DNS服务就为了解决这个问题而生了。其实很好理解,形如我们电脑中host文件。
192.168.1.11 roverliang.com
当我们访问roverliang.com 的时候,电脑便不会去外网服务器上查询了,直接去访问192.168.1.111。这是一个简单的域名劫持,足以说明DNS的涵义了。
下面是我们访问一个网页,各种协议在里面起的作用。
参考
TCP/IP基础协议
TCP/IP网络协议
TCP/IP四层模型
http://www.cnblogs.com/BlueTzar/articles/811160.html
www.cnblogs.com/roverliang/p/5176456.html