一、基本概念

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

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

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

  层次见的无关性

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

二、分层解析

应用层

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

  传递数据形式:【报文】

  常见协议:

  • 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. OVS 流表offload

    原文链接:https://www.dazhuanlan.com/2019/12/31/5e0af1858dada/ 最近开始调研网卡的OVS流表offload功能,所以目前查看一下OVS这块是怎么做的 ...

  2. Linux下执行SQL文件

    最近在使用MySQL数据库时,想要执行一些sql文件,就想到了source命令. source介绍:source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令. 功能:使Shell ...

  3. vue混入mixins时注意的问题

    mixin.js - 方式一:导出对象 const mixin = { mounted () { console.log('fffffffffffff') }, methods: { } } expo ...

  4. 面经手册 · 第7篇《ArrayList也这么多知识?一个指定位置插入就把谢飞机面晕了!》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 数据结构是写好代码的基础! 说到数据结构基本包括:数组.链表.队列.红黑树等,但当你 ...

  5. 接口测试中postman环境和用例集

    postman的环境使用 postman里有环境的设置,就是我们常说的用变量代替一个固定的值,这样做的好处是可以切换不同的域名.不同的环境变量,不同的线上线下账户等等场景.下面就看下怎么用吧. 创建一 ...

  6. 【Android】SwipeRefreshLayout的简单使用教程。下拉刷新控件炫酷效果。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  7. Android开发之下载服务器上的一张图片到本地java代码实现HttpURLConnection

    package com.david.HttpURLConnectionDemo; import java.io.FileOutputStream; import java.io.IOException ...

  8. 05_进程间通信 IPC

    1.进程间的通信方式 1.磁盘交互: 速度慢,不安全 2.socket套接字 3.管道通信(Pipe) 4.消息队列(Queue, Manager().Queue, JoinableQueue) 5. ...

  9. 06_Python异常处理机制

    1.异常概述 1.什么是错误: 错误是指有逻辑或语法等导致一个程序无法正常执行的问题     2.什么是异常: 异常时程序出错时标识的一种状态,程序不会向下执行而转去调用此函数的地方等待处理错误并恢复 ...

  10. JVM学习第三天(JVM的执行子系统)之类加载机制补充

    昨晚没看完,今天继续 系统的类加载器 对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间.这句话可以表达得更通俗一些: ...