一文详解计算机网络中晦涩问题

一文详解计算机网络中晦涩难懂问题

本文带你了解http、dns、socket、websocket等协议及术语本质原理。

首先还是先上图,下图是一台电脑中网络各层协议图
在这里插入图片描述

问题1:socket套接字是啥(吐槽一下,翻译的真难懂,自带防自学机制)

  1. socket其实就是一套操作系统提供的一套网络编程接口,这套接口实现的是tcp/udp协议。
  2. 本质就是操作系统留给程序员的一套网络接口,可以在写代码中调用这套接口编写网络程序。
  3. socket接口,操作系统已经替我们实现了很多协议,例如tcp、udp等,直接调用即可。

问题2:http协议是什么,通过什么实现的

  1. http是应用层协议,本质就是一种数据格式,不要想的多高大上,本质就是双方协定的一种双方都能看懂的数据格式,也就是http数据包的格式,本质还是通过socket编程调用tcp来实现数据传输
  2. http是通过通过tcp实现的,所以我们常见的http库本质是,其他程序员通过socket编程实现的一套应用层http协议库。
  3. 其他应用层协议(dns、http、ftp等)也都是通过socket编程实现的,这里要理解清楚socket就是操作系统提供给程序员的网络编程接口,电脑上的一切网络通信都离不开socket

问题3:应用层协议和其他层协议的区别

  1. 应用层协议:主要内容是定义数据的格式,以及一些其他内容,用于客户端软件和服务器等的数据交换。
  2. 应用层协议(tcp/udp):负责提供可靠的端到端数据传输。
  3. 网络层协议(ip):负责数据的路由和转发,确保数据能够从一个网络节点传输到另一个网络节点。
  4. 链路层协议:负责将网络层传下来的数据报组装成帧,并在物理链路(实际硬件网络)上进行传输。

问题4:WebSocket 和 Socket 区别

  1. 可以把 WebSocket 想象成 HTTP 和 Socket 什么关系,WebSocket 和 Socket 就是什么关系。
  2. http是应用层协议同socket接口实现,websocket也是一种应用层协议,也是通过socket接口实现的。
  3. HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。
  4. WebSocket 协议的最大特点是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

问题5:私有协议以及抓包问题

  1. 私有协议:私有协议一般都是应用层协议,当然不是说不能自定义一个传输协议,传输层协议也可以自定义,可是传输层协议在操作系统中实现,全世界大部分操作系统都使用tcp/ip协议,如果我们自定义传输层协议,我们传输过去的数据对方无法解析,除非对方的操作系统用的是和我们相同的自定义传输层协议。
  2. 为什么应用层协议在开发者经常可以自定义?
    前边说过,应用层协议只是一种数据交换格式(数据包格式),自定义应用层协议并不影响传输层正常运作。很多app都有自己的私有应用层协议,目的是为了防止中间人攻击、抓包等安全问题。
  3. 私有协议抓包:私有协议不是正常的http等这种熟知的协议,这时候我们直接抓是抓不到的,抓到了也看不懂,因为我们不知道数据解析格式,读到的全是乱码。私有协议很多时候都是写死在app中,这个时候我们就要通过软件逆向破解手段,将其私有协议代码破解出来,这样才能抓包。

第一次编辑于2024.6.29,后续遇到新问题也会持续更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值