| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> java面试之计算机网络 -> 正文阅读 |
|
[网络协议]java面试之计算机网络 |
OSI七层协议模型
TCP和UDP协议的区别
????????网络数据包一般包括头部和数据两部分,在TCP协议中,要发送的数据经过TCP模块添加TCP头部;然后IP模块添加IP头部和MAC头部;然后再最前面加上报头分界符以及末尾这样就构成了一个完整的数据包。 TCP协议中的数据包分片与重组发送方:将数据分为多个TCP头部+数据包的组合,TCP头部中存放着不同的数据序号;之后将多个组合交给IP模块,添加统一事务IP头部和MAC头部。 接收方:IP模块具有分片重组的功能,如果接收到的数据包是经过分片处理的,就会将其暂存在内部的内存空间中,然后等所有IP头部既有想用ID的包全部到达,因为同一个包的所有分片都具有相同的IP。此外IP头部还有一个分片偏移量的字段,他表示当前分片在整个包中所在的位置,根据这些信息就可以将所有的分片全部收到之后将他们还原成原来的包。 TCP头部信息?IP头部信息?ARP地址解析协议????????地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TTCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 三次握手四次挥手
试想如果是用两次握手,则会出现下面这种情况: 如客户端发出连接请求,但因连接请求报文丢失而未收到确认,于是客户端再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,客户端共发出了两个连接请求报文段,其中第一个丢失,第二个到达了服务端,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达服务端,此时服务端误认为客户端又发出一次新的连接请求,于是就向客户端发出确认报文段,同意建立连接,不采用三次握手,只要服务端发出确认,就建立新的连接了,此时客户端忽略服务端发来的确认,也不发送数据,则服务端一致等待客户端发送数据,浪费资源。 简单来说就是两次请求,因为一次请求因为网络的原因导致另外一次成功的连接关闭了之后才到,服务器会认为是又一次的请求,然后就会等待客户端数据的发送,从而浪费资源。 ?
等待2MSL的意义
HTTP和HTTPS????????HTTP是超文本传输协议,数据明文传输,而HTTPS=HTTP+SSL(加密)实现了数据的加密传输。HTTP是一种无状态的协议,是一种应用层协议,它规定了通信双方发送的数据的内容格式。HTTP请求信息可以看到当前请求支持的语言,压缩格式,编码格式以及返回文件类型Cookie等信息;返回信息包括响应协议,HTTP Code,时间,Cookie等信息。 常见的HTTP Code
200(成功) 302(重定向)请求重定向到制定网页 304(未修改)从上次请求后,请求的网页未修改过。服务器不会返回网页内容 401(未授权)请求要求身份验证 403(禁止)服务器拒绝请求 404(未找到)服务器找不到请求的网页 405(方法禁用)服务器找不到请求的网页 500(服务器内部错误)有bug导致程序出错 502(错误网关)服务器接收到了无效的响应 cookie和session????????cookise是在客户端浏览器的,而session是在服务器端存在的。session需要使用cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的cookie,它的值为该session的id(也就是HttpSession.getId()的返回值)。session依据该cookie来识别是否为同一用户。 ????????session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的sessionid,用该sessionid 为标识符来存取服务器端的session存储空间。而sessionid这一数据则是保存到客户端,用cookie保存的,用户提交页面时,会将这一 sessionid提交到服务器端,来存取session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用cookie,那么session也会失效。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:49:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |