TCP/IP协议模型

1. 数据链路层

  • 作用

  (1) 实现网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输
  (2) 网络驱动程序隐藏了不同物理网络的不同电气特性,为上层协议提供一个统一的接口

  • 应用

  ARP和RARP(Reverse Address Resolve Protocol)即逆地址解析协议,该协议实现了IP地址和物理地址(MAC地址)之间的转换

2. 网络层

  • 作用

  网络有分局域网(LAN, Local Area Network)和广域网(WAN, Wide Area Network)。对于后者通常需要使用众多分级的路由器来连接分散的主机或者LAN,即通讯的两台主机一般不是直接连接,而是通过多个中间节点(路由器)连接的,从而形成网络拓扑连接。
  (1) 网络层的任务之一就是选择这些中间节点,以确定两台主机间的通讯路径。
  (2) 其次网络层对上层协议隐藏了网络拓扑连接的细节,在使得传输层看来通讯双方是直接连接的

  • 应用

  (1) IP协议: IP协议(Internet Protocol)是网络层最核心的协议,它根据数据包的目的IP地址来决定如何投递该数据包。若数据包不可直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳路由器,并将数据包交付给该路由器去转发,如此循环直至到达目标主机或者发送失败而丢弃该数据包。
  (2) ICMP协议: ICMP协议(Internet Control Message Protocol,因特网控制报文协议)是IP协议的补充,用于检测网络的连接状态,如ping应用程序就是ICMP协议的使用。ICMP包发送是不可靠的,所以不能依靠接收ICMP包解决网络问题;ICMP与TCP/UDP不同,它们是传输层协议,虽然都具有类型域和代码域,但是前者和后者不同,ping用到的ICMP协议,不是端口。ICMP协议使用的是IP协议而非使用下层协议提供的的服务,严格来讲它并非网络层协议,而是网络层程序。注意,ping是应用程序而非协议,它利用网络层的ICMP协议监测网络连接

3. 传输层

  • 作用

  为应用程序提供端对端通讯的”错觉”,即为应用程序隐藏了数据包跳转的细节,负责数据包的收发、链路超时重连等。

  • 应用

  (1) TCP协议: TCP协议(Transmission Control Protocol, 传输控制协议)为应用程序提供可靠的、面向连接的、基于流的服务,具有超时重传、数据确认等方式来确保数据包被正确发送到目的端。因此TCP服务是可靠的,使用TCP协议通讯的双方必须先建立起TCP连接,并在系统内核中为该连接维持一些必要的数据结构,比如连接的状态,读写缓冲区,多个定时器等。当通讯结束时双方必须关闭连接以释放这些内核数据。基于流发送意思是数据是没有长度限制,它可源源不断地从通讯的一段流入另一端。
  (2) UDP协议: UDP协议(User Datagram Protocol, 用户数据报协议)与TCP协议相反,它为应用程序提供的是不可靠的、无连接的基于数据报的服务。
  无连接: 通讯双方不保持一个长久的联系,因此应用程序每次发送数据都要明确指定接收方的地址;
  基于数据报的服务: 这是相对于数据流而言的,每个UDP数据报都有一个长度,接收端必须以该长度为最小单位将其内容一次性读出,否则数据将被截断。
  UDP不具有发送时是被重发功能,所以UDP协议在内核实现中无需为应用程序的数据保存副本,当UDP数据报被成功发送之后,UDP内核缓冲区中该数据报就被丢弃了。
  (3) SCTP协议: SCTP(Stream Control Transmission Protocol, 流控制传输协议)是为了在因特网上传输电话信号而设计的。

4. 应用层

  •  作用

  前面三层负责处理网络通讯,需要稳定高效,因此它们是在操作系统的内核空间中,而应用层是在用户空间实现的,负责处理众多业务逻辑,如文件传输、网络管理。

  • 应用

  (1) telne协议: 远程登录协议,可以在本地完成远程任务
  (2) OSPF协议: OSPF协议(Open Shorttest Path First, 开放最短路径优先)是一种动态路由更新协议,用于路由器之间的通讯,以告知对方自身的路由信息
  (3) DNS协议: DNS协议(Domain Name Service, 域名服务)提供机器域名到IP地址的转换。如百度的机器域名是www.baidu.com,对应的IP地址是http://119.75.217.109/。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

目录(?)[-] xml控件代码重用includexml控件代码重用merge横屏和竖屏landsacpe portraitxml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式。例如…

管理者一定会遇到的那些事

——极客时间——沈剑老师分享有感

Git使用攻略

Git使用攻略 merge,将develop合并到master# 切换到Master分支git checkout master# 将Develop分支合并到master git merge --no-ff develop 切换分支git checkout master 检出代码git checkout master 创建分支git branch newBranch查看本地分支git branch查看远程分…

Java停止线程的方式

1、使用中断标志位 public class StopThreadTest extends Thread {private boolean exit false;Overridepublic void run() {while (!exit) {try {System.out.println("i am running,please wait a moment");Thread.sleep(500);} catch (InterruptedException e) {…

Vim文本编辑器 指令簿(二)

常常处理文本以及常常须要写代码的人,都会有自己比較常常使用的编辑器,本人喜欢用Vim。理由就是Vim编辑器灵活,而且能够达到纯键盘操作,使用纯熟情况下,根本不须要鼠标操作。听起来是不是非常酷的?只是别高…

读《数学之美》

数学之美 数学的发展实际上是不断的抽象和概括的过程 目录 数学之美 第一章 第二章(从规则到统计) 第三章 统计语言模型 第四章 分词 第五章 隐马尔科夫模型 第六章 信息的度量和作用 第七章 贾里尼克和和现代语言处理 第八章 简单之美——布…

每天一个JavaScript实例-动态省份选择城市

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /> <title>每天一个JavaScript实例-动态省份选择城市</title> <script> var citystore new Array(); citys…

阅读源码那些事

方法 看spring的源码的时候如果我们一直追究所有的细节那会让我们会越陷越深&#xff0c;掉入细节的无底洞&#xff0c;稍不留神脑回路跟不上就会蒙圈。 因此&#xff0c;我们要学会找源码中的关键部分看&#xff0c;弄懂主要流程和本次看源码的目的的那部分就行。 等我们对…

Advanced C++ --- const function

上一篇介绍了const修饰的变量或者指针的含义&#xff0c;这篇我们介绍const修饰的函数以及函数参数含义。 首先我们看一个例子 class Dog{int age;string name; public:Dog(){age 3;name "dummy";}void setAge(const int &a){age a;a;} };int main(){Dog d;in…

slf4j、log4j日志报错排查

1、WARN Please initialize the log4j system properly 解法&#xff1a;只要在 src文件目录下建立配置文件log4j.properties即可 2、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" 解法&#xff1a;这是因为sl4j和log4j的不兼容导致的&#…

无刷新三级联动查询

JQuery中国省市区无刷新三级联动查询&#xff08;转&#xff09;&#xff1a;http://www.cnblogs.com/xiaoyu5062/archive/2012/07/30/2615359.html Ajax实现无刷新三联动下拉框&#xff08;转&#xff09;&#xff1a;http://singlepine.cnblogs.com/articles/257954.html js特…

java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken

使用ieda构建web工程项目&#xff0c;启动tomcat报错&#xff1a; java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken maven经过不断的clean&#xff0c;compile、package都没有作用&#xff0c;最后发现是因为compile后生成了jar包 于是手动在pom…

iOS屏幕尺寸和分辨率了解

1、截至目前为止&#xff0c;主流的iOS设备屏幕有以下几种&#xff1a; --------------- iPhone ---------- -------- iPad ------------ 2、iOS设备屏幕分辨率&#xff1a;&#xff08;ppi是像素密度单位【像素/英寸】&#xff0c;401ppi表示每英寸上有401个像素&#xff0…