先注册域名后建设网站可以吗,网站建设评比办法,网站开发的几个主要阶段,学做网站能找到工作么文章目录TCP/IP协议族体系结构以及主要协议数据链路层网络层传输层应用层TCP/IP协议族体系结构以及主要协议
TCP/IP协议族是一个四层协议系统#xff0c;自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同 的功能#xff0c;且通过若干协议来实现#xff…
文章目录TCP/IP协议族体系结构以及主要协议数据链路层网络层传输层应用层TCP/IP协议族体系结构以及主要协议
TCP/IP协议族是一个四层协议系统自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同 的功能且通过若干协议来实现上层协议使用下层协议提供的服务。
数据链路层
数据链路层实现了网卡接口的网络驱动程序以处理数据在物理媒介比如以太网、令牌环等上的传输。
数据链路层两个常用的协议是ARP协议Address Resolve Protocol地址解析协议和RARP协议ReverseAddress Resolve Protocol逆地址解析协议。它们实现了IP地址和机器物理地址通常是MAC地址以太网、令牌环和802.11无线网络都使用MAC地址之间的相互转换。
网络层使用IP地址寻址一台机器而数据链路层使用物理地址寻址一台机器因此网络层必须先将目标机器的IP地址转化成其物理地址才能使用数据链路层提供的服务这就是ARP协议的用途。
RARP协议仅用于网络上的某些无盘工作站。因为缺乏存储设备无盘工作站无法记住自己的IP地址但它们可以利用网卡上的物理地址来向网 络管理者服务器或网络管理软件查询自身的IP地址。运行RARP服务的网络管理者通常存有该网络上所有机器的物理地址到IP地址的映射。
网络层
网络层实现数据包的选路和转发。 WANWide Area Network广域网通常使用众多分级的路由器来连接分散的主机或LANLocal Area Network局域网因此通信的两台主机一般不是直接相连的而是通过多个中间节点路由器连接的。网络层的任务就是选择这些中间节点以确定两台主机之间的通信路径。同时网络层对上层协议隐藏了网络拓扑连接的细节使得在传输层和网络应用程序看来通信的双方是直接相连的。
网络层最核心的协议是IP协议Internet Protocol因特网协议。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机那么IP协议就为它寻找一个合适的下一跳next hop路由器并将数据包交付给该路由器来转发。多次重复这一过程数据包最终到达目标主机或者由于发送失败而被丢弃。可见IP协议使用逐跳hop by hop的方式确定通信路径。
网络层另外一个重要的协议是ICMP协议Internet Control Message Protocol因特网控制报文协议。它是IP协议的重要补充主要用于检测网络连接。
8位类型字段用于区分报文类型。它将ICMP报文分为两大类 差错报文这类报文主要用来回应网络错误比如目标不可到达类型值为3和重定向类型值为5 查询报文这类报文用来查询网络信息比如ping程序就是使用ICMP报文查看目标是否可到达类型值为8的。 有的ICMP报文还使用8位代码字段来进一步细分不同的条件。比如重定向报文使用代码值0表示对网络重定向代码值1表示对主机重定向。 ICMP报文使用16位校验和字段对整个报文包括头部和内容部分进行循环冗余校验Cyclic Redundancy CheckCRC以检验报文在传输过程中是否损坏。不同的ICMP报文类型具有不同的正文内容。
传输层
传输层为两台主机上的应用程序提供端到端end to end的通信。与网络层使用的逐跳通信方式不同传输层只关心通信的起始端和目的端而不在乎数据包的中转过程。 垂直的实线箭头表示TCP/IP协议族各层之间的实体通信数据包确实是沿着这些线路传递的而水平的虚线箭头表示逻辑通信线路。该图中还附带描述了不同物理网络的连接方法。可见 数据链路层驱动程序封装了物理网络的电气细节网络层封装了网络连接的细节传输层则为应用程序封装了一条端到端的逻辑通信链路它负责数据的收发、链路的超时重连等。
传输层协议TCP协议、UDP协议。 TCP协议Transmission Control Protocol传输控制协议为应用层提供可靠的、面向连接的和基于流stream的服务。TCP协议使用超时重传、数据确认等方式来确保数据包被正确地发送至目的端因此TCP服务是可靠的。使用TCP协议通信的双方必须先建立TCP连接并在内核中为该连接维持一些必要的数据结构比如连接的状态、读写缓冲区以及诸多定时器等。当通信结束时双方必须关闭连接以释放这些内核数据。TCP服务是基于流的。基于流的数据没有边界长度限制它源源不断地从通信的一端流入另一端。发送端可以逐个字节地向数据流中写入数据接收端也可以逐个字节地将它们读出。 UDP协议User Datagram Protocol用户数据报协议则与TCP协议完全相反它为应用层提供不可靠、无连接和基于数据报的服务。“不可靠”意味着UDP协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失或者目的端通过数据校验发现数据错误而将其丢弃则UDP协议只是单地通知应用程序发送失败。因此使用UDP协议的应用程序通常要自己处理数据确认、超时重传等逻辑。UDP协议是无连接的即通信双方不保持一个长久的联系因此应用程序每次发送数据都要明确指定接收端的地址IP地址等信息。基于数据报的服务是相对基于流的服务而言的。每个UDP数据报都有一个长度接收端必须以该长度为最小单位将其所有内容一次性读出否则数据将被截断。
应用层
应用层负责处理应用程序的逻辑。 数据链路层、网络层和传输层负责处理网络通信细节这部分必须既稳定又高效因此它们都在内核空间中实现。而应用层则在用户空间实现因为它负责处理众多逻辑比如文件传输、名称查询和网络管理等。如果应用层也在内核中实现则会使内核变得非常庞大。当然也有少数服务器程序是在内核中实现的这样代码就无须在用户空间和内核空间来回切换主要是数据的复制极大地提高了工作效率。不过这种代码实现起来较复杂不够灵活且不便于移植。
ping是应用程序而不是协议前面说过它利用ICMP报文检测网络连接是调试网络环境的必备工具。
telnet协议是一种远程登录协议它使我们能在本地完成远程任务。
OSPFOpen Shortest Path First开放最短路径优先协议是一种动态路由更新协议用于路由器之间的通信以告知对方各自的路由信息。
DNSDomain Name Service域名服务协议提供机器域名到IP地址的转换。
应用层协议或程序可能跳过传输层直接使用网络层提供的服务比如ping程序和OSPF协议。应用层协议或程序通常既可以使用TCP服务又可以使用UDP服务比如DNS协议。我们可以通过/etc/services文件查看所有知名的应用层协议以及它们都能使用哪些传输层服务。
五层协议背后的思想上层屏蔽下层细节只使用其提供的服务。高内聚低耦合每一层专注于其功能各层之间的关系依赖不大。
数据包在每层有不同的格式从上到下依次叫段数据报帧数据从应用层通过协议栈向下传递每经过一层加上对应层协议的报头最后封装成帧发送到传输介质上到达路由器或者目的主机剥掉头部交付给上层需要者。这一过程称为封装传输分离分用。