一、基本概念

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

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

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

  层次见的无关性

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

二、分层解析

应用层

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

  传递数据形式:【报文】

  常见协议:

  • 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. Wireshark抓包与常见问题解决

    简介 Wireshark是一个网络抓包分析软件,当线上出现各种连接相关的问题,如连接不复用,大量CLOSE_WAIT时,可以方便的使用Wireshark抓包软件进行抓包分析 安装 Wirewark在w ...

  2. springSecurity初识-练气初期

    1.写在前面 Spring Security是一个框架,提供针对常见攻击的身份验证,授权和保护.通过对命令式和反应式应用程序的一流支持,它是保护基于Spring的应用程序的事实标准. Spring S ...

  3. classmethod与staticmethod

    1.classmethod   @classmethod # 把一个对象绑定的方法 修改成一个 类方法第一,在方法中仍然可以引用类中的静态变量第二,可以不用实例化对象,就直接用类名在外部调用这个方法什 ...

  4. xmind8 破解激活教程

    这里以windows为例来演示,其它操作系统需根据情况修改相应步骤. 一.下载安装包 首先去xmind国外官网下载对应操作系统的安装包,国内官网的那个是有残缺的,不支持破解. 官网下载链接 二.下载破 ...

  5. 如何检查nofollow超链接属性是否有效

    http://www.wocaoseo.com/thread-88-1-1.html     nofollow 标签的重要性就不用阐述了,在这里武汉SEO与大家分享一些nofollow 标签的基本知识 ...

  6. vue刷新数组

    困扰我两天的问题被一行代码解决了!!! 最近在做某个功能时用到了v-for,页面内容都是根据父页面传递过来的数组生成的,但是当我改变数组内容时页面不会跟着改变.这个问题足足困扰了我两天时间,最终下面的 ...

  7. 在JAVASCRIPT中,为什么document.getElementById不可以再全局(函数外)使用?

    今天在使用JavaScript使用document.ElementById("ID")的时候,发现var x = document.getElementById("chi ...

  8. Kubernetes实战总结 - 阿里云ECS自建K8S集群

    一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9b ...

  9. Android开发之SDCardUtils工具类。java工具详细代码,附源代码。判断SD卡是否挂载等功能

    package com.xiaobing.zhbj.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...

  10. Forward Rendering VS Deferred Rendering

    http://gad.qq.com/article/detail/32731 Forward Rendering Deferred Rendering