关于TCP/IP的理解
关于TCP/IP的理解
TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。
MAC地址,处于数据链路层.
IP地址,处于网络层.
端口号,处于传输层.
TCP/IP是一个协议集,对英特网中主机的寻址方式,主机的命名机制,信息的传输规则,以及各种服务功能作了约定.
IP协议是英特网中的交通规则,连入英特网中的每台计算机及处于十字路口的路由器都必须熟知和遵守该交通规则。IP运行于互联层。屏蔽各个物理网络的细节和差异。
TCP:传输控制协议,运行于传输层。利用IP层提供的服务,提供端到端的可靠的(TCP)服务.
1、数据链路层
负责帧数据的传递。(经过数据链路层封装的数据称为帧)
数据链路层两个常用的协议时ARP(地址解析协议)和RARP(逆地址解析协议)。它们实现了IP地址和机器物理地址之间的相互转换。
网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转换为其物理地址,才能使用数据链路层提供的服务,这就是ARP协议的用途。RARP协议仅用于网络上的某些无盘工作站(没有硬盘)。因缺乏存储设备,无盘工作站无法记住自己的IP地址,但他们可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。
2、网络层
负责数据怎样传递过去。
网络层实现数据包的选路和转发。WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此,
通讯的两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。网络层的任务就是选择这些中间节点,
已确定两台主机之间的通讯路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,
通讯的双方是直接相连的。
3、传输层
负责传输数据的控制(准确性、安全性)
传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的
起始端和目的端,而不在乎数据包的中转过程。
端到端的逻辑通信链路,它负责数据的收发、链路的超时重传等。
传输层协议主要有三个:TCP 协议、UDP协议、SCTP协议。
4、应用层
负责数据的展示和获取。
数据链路层、网络层、传输层负责处理网络通信细节,这部分必须既稳定又高效,因此它们都在内核空间中实现。而应用层则在用户空间中实现,因为它负责处理众多逻辑,比如文件传输、名称查询和网络管理等。如果应用层也在内核中实现,则会让内核变的十分庞大。当然,也有少数服务器程序是在内核中实现的,这样代码就无须在用户空间和内核空间来回切换(主要是数据的复制),极大地提高了工作效率。不过这种代码实现起来较复杂,不够灵活且不便于移植。