Java网络编程(一):总览

目录

一、总体概括

二、请求流程


一、总体概括

 之前在看netty的时候,看着netty的源码,突然感觉有好多基础的网络的知识都不是很清楚。因此补一下基础的网络知识, 大致的描述一下该过程中都经历了哪些,以便加深印象,同时巩固一下网络方面的知识。

先上一张大体相关的参考图,其中涉及的知识,后续慢慢讲到。

由于日常常用的便是通过浏览器进行web请求,后续便以浏览器的请求流程为例,简述在浏览器的访问过程中的都经历了什么,涉及了哪些方面的知识。由于使用的是HTTP、TCP/IP协议,以下就以它们为主,简述流程。

二、请求流程

1、由web浏览器根据请求路径、请求参数,构建HTTP请求消息。(涉及HTTP协议,消息的结构)

2、web浏览器调用操作系统Socket库中DNS解析器,通过DNS服务器解析请求域名对应的IP地址。(涉及DNS服务器解析流程、域名、IP、子网掩码、网关等)

3、web浏览器调用操作系统协议栈创建socket,由socket保存连接信息。

      ①、web浏览器调用connect,操作系统协议栈将本地的socket和服务器的socket进行连接。

      ②、首先会调用协议栈中的TCP模块,通过TCP模块封装http消息,添加TCP头部。(涉及TCP协议,包结构、MTU、三次握手、四次挥手、滑动窗口协议等)

      ③、接着会由IP模块封装消息,添加IP头部、MAC头部。(涉及IP协议、ARP协议、ICMP协议、路由表等)

      ④、最后由操作系统调用网卡驱动,将数字信息转换为电信号或者光信号,通过双绞线或光纤传输。

4、根据TCP协议的三次握手建立连接后,根据以上步骤发送消息。

5、服务端的收到消息后,解析步骤和客服端发送步骤相反,根据相关协议,依次解析,最后由服务器应用程序获取消息,发出响应。响应流程和客服端发送消息流程一致。

 

大体流程应该就是这样,后续将每个流程细化,补充相关的知识点。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值