Java Web学习(九)网络协议详解
一、基本概念
概念:协议是网络中计算机或设备之间进行通信的一系列规则的集合。
协议栈/族:在网络中为了完成通信而使用到的多层上的各种协议按照层次顺序的组合。
作用:建立对等层之间的虚拟通信、实现层次之间的无关性。
层次见的无关性:
- 较高层和相邻的低层通信:只利用较低层提供的接口和服务,而不需了解底层实现的算法和协议细节
- 较低层和较高层通信:也仅是使用从高层系统传送来的参数和控制信息
二、分层解析
应用层
定义:与其它计算机进行通讯的一个应用,对应应用程序的通信服务,实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。
传递数据形式:【报文】
常见协议:
- 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学习(九)网络协议详解的更多相关文章
- Java Web -【分页功能】详解
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- java web 学习九(通过servlet生成验证码图片)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- Java提高学习之Object类详解(1)
转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...
- spring学习九 spring aop详解
本文来自于:https://www.cnblogs.com/jingzhishen/p/4980551.html AOP(Aspect-Oriented Programming,面向方面编程),可以说 ...
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- Web协议详解与抓包实战,高效解决网络难题
无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速.高效地解决问题,Web 协议一定是你绕不过去的一道坎. 旨在帮助你对各种常用 W ...
- 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别
高效开发之SASS篇 作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...
- 入木三分学网络第一篇--VRRP协议详解第一篇(转)
因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...
- Http协议详解(转)>>>写的很好
声明:本片文章非原创,仅供自己学习并分享 内容来源于博客园作者MIN飞翔的HTTP协议详解地址http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html ...
随机推荐
- Vue的数据响应式
getter和setter怎么用 示例代码 getter ,关键词为 get ,用于获取一个值.定义时为函数,但是使用时不用加括号. setter 用于对数据的改写 Object.defineProp ...
- 重温Java Web的技术细节
目录 一.背景 二.请求与响应 2.1.Http请求 2.2.Http响应 三.ServletConfig 3.1 测试ServletConfig参数 四.ServletContext 4.1 测试S ...
- 使用Android的硬件缩放技术优化执行效率
Unity3D研究院之使用Android的硬件缩放技术优化执行效率 http://www.xuanyusong.com/archives/3205 Android中GLSurfaceView在横竖屏切 ...
- Unity NGUI C#性能优化
建议读者先看这篇博文:http://blog.csdn.net/zzxiang1985/article/details/43339273,有些技术已经变了,比如第1招,unity5的打包机制已经变许多 ...
- 使用Docker构建PHP7.4 + Swoole + Redis镜像
使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...
- 1008 Elevator (20 分)(模拟)
The highest building in our city has only one elevator. A request list is made up with N positive nu ...
- 转载:SQL优化的主旨
如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间. 如果要优化查询,实际上要优化其子任务, 要么消除其中一些子任务, 要么减少子任务的执行次数, 要么让子任务执行得更快 ...
- [PyTorch 学习笔记] 6.2 Normalization
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson6/bn_and_initialize.py https: ...
- Java高并发系列——检视阅读
Java高并发系列--检视阅读 参考 java高并发系列 liaoxuefeng Java教程 CompletableFuture AQS原理没讲,需要找资料补充. JUC中常见的集合原来没讲,比如C ...
- 入门alibaba的EasyExcel
一.关于EasyExcel 1.什么是EasyExcel,有什么作用? EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. ...