一、基本概念

  概念:协议是网络中计算机或设备之间进行通信的一系列规则的集合。

  协议栈/族:在网络中为了完成通信而使用到的多层上的各种协议按照层次顺序的组合

  作用:建立对等层之间的虚拟通信、实现层次之间的无关性

  层次见的无关性

  • 较高层和相邻的低层通信:只利用较低层提供的接口和服务,而不需了解底层实现的算法和协议细节
  • 较低层和较高层通信:也仅是使用从高层系统传送来的参数和控制信息

二、分层解析

应用层

  定义:与其它计算机进行通讯的一个应用,对应应用程序的通信服务,实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

  传递数据形式:【报文】

  常见协议:

  • FTP(文件传输协议):是网络上两台计算机传送文件的协议,运行在 TCP 之上,是通过 Internet 将文件从一台计算机传输到另一台计算机的一种途径。FTP协议使用TCP20号和21号端口,20号端口用于数据交换21号端口用于建立连接,允许目录和文件访问,上传下载,不能远程执行文件。
  • TFTP(简单文件传输协议):是用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂开销不大的文件传输服务,使用UDP的69号端口。
  • HTTP(超文本传输协议):是用于从 WWW 服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。
  • DNS(域名系统):在 Internet 上域名与 IP 地址之间是一一对应 的,域名虽然便于人们记忆,但机器之间只能互相识别 IP 地址,它们之间的转换工作称为域名解析,使用53号端口。
  • SMTP(简单邮件传输协议):建立在 TCP 之上,是一种提供可靠且有效的电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息,并提供与电子邮件有关的通知,使用 25 端口。
  • SNMP(简单网络管理协议):SNMP是指一系列网络管理规范的集合,包括协议本身、数据结构的定义和一些相关概念。目前, SNMP 已成为网络管理领域中事实上的工业标准。
  • Telnet(远程登录协议):是登录和仿真程序,建立在 TCP 之上,它的基本功能是允许用户登录并进入远程计算机系统
  • DHCP(动态主机配置协议):建立在 UDP 之上,是基于客户机/服务器模型(B/S模型)设计的一个局域网的网络协议

  在4层结构中,应用层包括了应用层本身、表示层和会话层三部分,简要概括如下:

  • 应用层本身 :与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。
  • 表示层 :主要功能是定义数据格式及加密
  • 会话层 :它定义了如何开始、控制和结束一个会话

传输层

  定义:一些传输数据的协议和端口号(WWW端口80等)

  传递数据形式:【报文段/用户数据报】

  常见协议:

  • TCP(传输控制协议 ):传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)
  • UDP(用户数据报协议) :与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。

  主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。

网络层

  定义:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。

  传递数据形式:【数据报】

  常见协议:

  • IP(网际协议) :负责Internet上网络之间的通信,并规定了将数据从一个网络传输到另一个网络应遵循的通信规则,是TCP/IP协议的核心。
  • ICMP(控制报文协议):用于在IP主机、路由器之间传递控制消息PS:控制消息:指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
  • IGMP (互联网组协议):用于IP主机向任一个直接相邻的路由器报告他们的组员情况

  作用:

(1) 负责为分组交换网上的不同主机提供通信服务

(2) 选中合适的路由,使源主机传输层所传下来的分组,能够通过网络中的路由器找到目的主机

网络接口层

  定义:主要是定义如何让格式化数据以进行传输,以及如何控制对物理介质的访问

  传递数据形式:

  • 数据链路层【帧】
  • 物理层【比特流】

  常见协议:

  • ARP(地址解析协议) :根据IP地址获取物理地址的一个TCP/IP协议。
  • RARP(反向地址转换协议):允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求自己的 IP 地址

Java Web学习(九)网络协议详解的更多相关文章

  1. Java Web -【分页功能】详解

    分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...

  2. java web 学习九(通过servlet生成验证码图片)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  3. Java提高学习之Object类详解(1)

    转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...

  4. spring学习九 spring aop详解

    本文来自于:https://www.cnblogs.com/jingzhishen/p/4980551.html AOP(Aspect-Oriented Programming,面向方面编程),可以说 ...

  5. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  6. Web协议详解与抓包实战,高效解决网络难题

    无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速.高效地解决问题,Web 协议一定是你绕不过去的一道坎. 旨在帮助你对各种常用 W ...

  7. 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别

    高效开发之SASS篇   作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...

  8. 入木三分学网络第一篇--VRRP协议详解第一篇(转)

    因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...

  9. Http协议详解(转)>>>写的很好

    声明:本片文章非原创,仅供自己学习并分享 内容来源于博客园作者MIN飞翔的HTTP协议详解地址http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html ...

随机推荐

  1. 操作系统-文件系统(5)Linux文件系统管理

    主流分区机制有MBR和GPT两种 MBR分区:第一个扇区最重要,里面有:引导代码(Bootstrap code area)及分区表(partition table), 其中Bootstrap code ...

  2. anaconda3 安装pip3

    事先安装了anaconda3版本,此时想要安装pip3,需要: https://bootstrap.pypa.io/get-pip.py 打开链接,将文本存到本地,命名为get_pip.py. 然后通 ...

  3. 免费领CRMEB移动社交电商系统源码与授权

    移动电商风起云涌,直播带货重塑销售模式,传统商业更是举步维艰,各行各业转型移动电商迫在眉睫,拥有一款好的移动社群社交电商系统成为众多企业与商家的心病! 你曾是否被那些劣质的移动电商系统搞得心力憔悴? ...

  4. 4-6年经验左右、优秀的 Java 程序员应该具备的技能

    4-6年经验左右.优秀的 Java 程序员应该具备的技能有哪些,按“专业技能”和“项目”两块,包括但不限于以下内容. 专业节能方面 基础:JDK 常用类的原理.源码.使用场景. 设计模式:常用几种的原 ...

  5. tars 问题汇总

    1. 节点 ip地址变了如何解决.后台不可以改. 2. [ok] 服务如何在本地运行../HelloGo --config.conf

  6. IOS 打包相关

    Unity 导出的Xcode工程 http://gad.qq.com/article/detail/29330 [Unity3D]Unity 生成的XCode工程结构 http://blog.163. ...

  7. java初探(1)之登录补充

    在登录之后,可能服务器是分布式的,因此不能通过一个本地的session来管理登录信息,导致登录的信息不能传递,即在这台服务器上可以得到用户登录信息,但在那台就得不到.因此,需要设置分布式的sessio ...

  8. Java8 ParallelStream

    ParallelStream 并行流就是一个把内容拆分成多个数据块,用不同线程分别处理每个数据块的流.对收集源调用parallelStream方法就能将集合转换为并行流. 并行流 并行流和顺序流转换 ...

  9. PHP 安装 扩展时 抛出 /usr/local/Cellar/php@7.1/7.1.25/pecl 异常解决

    liugx@MacBook-Pro  ~/work/php/ext_source/php-xhprof-extension   master  make installmkdir: /usr/ ...

  10. 前端插入date类型的数据到数据库

    //插入 @Override public boolean insertEmp(Emp emp) { String sql = "insert into emp(lwlEmpno,lwlEn ...