一、基本概念

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

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

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

  层次见的无关性

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

二、分层解析

应用层

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

  传递数据形式:【报文】

  常见协议:

  • 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. 玩转Spring——Spring整合JDBC

    传统JDBC代码的弊端在传统的jdbc代码中,即使是执行一条简单的SQL语句,其实现的整个流程也是极为繁琐的,先打开数据库连接执行sql,然后组装结果,最后关闭数据库资源,这中间还有大量的try... ...

  2. Java数据结构——根据遍历结果构造二叉树

    一.已知前序.中序.后序遍历结果的其中两种,还原二叉树. ①已知前序遍历结果:1,2,4,5,3,6,7 中序遍历结果:4,2,5,1,6,3,7还原二叉树后BFS出结果. TreeNode.java ...

  3. Java多线程_同步工具CyclicBarrier

    CyclicBarrier概念:CyclicBarrier是多线程中的一个同步工具,它允许一组线程互相等待,直到到达某个公共屏障点.形象点儿说,CyclicBarrier就是一个屏障,要求这一组线程中 ...

  4. python3.6和pip3:Ubuntu下安装升级与踩坑之路

    本文以Ubuntu16.x系统为例,演示如何安装python3.6和相应环境.安装Python3的机器必须要能访问外网才能进行如下操作! 1. 安装方式 在Ubuntu下安装python有两种方式: ...

  5. Spark Java创建DataFrame

    以前用Python和Scala操作Spark的时候比较多,毕竟Python和Scala代码写起来要简洁很多. 今天一起来看看Java版本怎么创建DataFrame,代码写起来其实差不多,毕竟公用同一套 ...

  6. Blazor带我重玩前端(六)

    本文主要讨论Blazor事件内容,由于blazor事件部分很多,所以会分成上下两篇,本文为第二篇. 双向绑定 概述 如图所示 当点击单项绑定的时候,MyOnewayComponent里的属性值会发生变 ...

  7. JetBrain破解

    https://blog.csdn.net/u014044812/article/details/78727496 https://jetlicense.nss.im/ https://zhile.i ...

  8. Python pymsql模块

    pymsql pymysql这款第三方库可以帮助我们利用python语言与mysql进行链接 基本使用 首先要下载pymysql pip install pymsql 以下是pymysql的基本使用 ...

  9. github travis-ci持续部署hexo博客

    引言 目前我的博客源码是在coding上的,因为有很方便的持续部署,但是coding目前还不提供push文件的开放API. 因为最近做了一个一键分发平台,将博客分发到简书.CSDN等等的平台,但是我的 ...

  10. Spring MVC实例创建(一)

    Spring MVC Spring MVC 为展现底层提供的基于MVC设计理念的优秀的Web框架,是目前最流行的MVC框架之一.Spring3.0后全面超越Struts2,成为最为优秀的MVC框架.S ...