网络
文章平均质量分 75
殇&璃
这个作者很懒,什么都没留下…
展开
-
(网络)典型协议和技术:DNS + NAT/NAPT + 代理
之前我们已经学习了应用层、传输层、网络层、链路层的典型协议,其实还是有很多很多的协议我们没有学习到。这次我就来学习一下其他典型的协议和技术。文章目录DNS域名系统简介域名服务器与域名的划分域名解析流程NAT---网络地址转换DNS域名系统简介DNS:domain name system – 域名系统管理域名与服务器IP地址之间的关系,进行域名解析获取服务器IP地址域名:服务器的别名,由便于记忆的字符串组成TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序. 但是IP地址.原创 2021-04-11 20:43:03 · 533 阅读 · 0 评论 -
(网络)链路层:以太网协议解析(mac地址 + ARP协议 + MTU)
之前我们学习了应用层的http和https、传输层的tcp和udp、网络层的IP,接下来到链路层了,我们来看链路层的以太网协议吧~文章目录以太网协议以太网帧格式认识MAC地址ARP协议MTU的认识和影响以太网协议在这之前我们要知道:链路层负责相邻设备之间的数据传输以太网帧格式认识MAC地址MAC地址用来识别数据链路层中相连的节点;长度为48位, 即6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改. m.原创 2021-04-11 11:51:47 · 1140 阅读 · 0 评论 -
(网络)网络层:IP协议解析、地址管理(IP地址、子网掩码)、路由选择
之前我们学习了传输层的TCP和UDP,今天我们就来看看网络层的IP协议,话不多说,直接开整。文章目录IP协议头IP地址管理IP地址IP协议头我们说了解一个协议就要先了解这个协议的实现,也就是这个协议的各个字段下面直接给出IP协议头结构图解。IP地址管理IP地址IP地址在网络中唯一标识一台主机IPv4是无符号4字节整数(42亿9千多万),虽然不少但是肯定是不够用的。解决方案:DHCP(动态地址分配)、NAT(网络地址转换)...原创 2021-04-11 11:03:37 · 874 阅读 · 0 评论 -
(网络)传输层:TCP协议解析 (详细简洁)
之前说了udp,那tcp肯定也跑不了对吧,话不多说,直接开整。文章目录协议实现这次我们仍然是从三个方面对UDP协议进行解析:协议实现、协议特性、编程影响。协议实现原创 2021-04-02 17:53:25 · 286 阅读 · 0 评论 -
(网络)传输层:TCP协议特性——面向字节流(优劣 + 黏包问题)
文章目录字节流黏包问题字节流面向字节流:提供字节流传输服务 --- 有序、可靠、基于连接,双向的一种以字节的单位进行传输的方式面向数据报:数据传输是整条收发,按条交付面向字节流:tcp在缓冲区中取出合适大小的数据进行发送,接收方接收数据的最小单位是1字节优势:传输比较灵活劣势:会存在黏包问题黏包问题黏包 — 有可能将多条数据当成一条数据进行处理本质:tcp在传输层对应用数据边界不敏感(不关注应用层数据边界)因此需要程序猿在应用层进行数据的边界管理编程影响:上层可能会将多条数原创 2021-04-02 17:52:17 · 1289 阅读 · 0 评论 -
(网络)传输层:TCP协议特性——可靠传输详解(安全传输+避免丢包+提高性能)
文章目录安全有序传输包序管理避免丢包机制1. 滑动窗口机制 ——流量控制窗口滑动窗口机制中的协议2. 拥塞控制提高性能1. 快速重传机制2. 捎带应答机制3. 延迟应答机制可靠传输:确保数据安全到达对端,并且保证有序交付安全有序传输确保数据安全有序到达对端可靠传输的前提:面向连接。这里不再细说,有兴趣的小伙伴可以戳(网络)传输层:TCP协议特性——面向连接详解(连接建立、断开详细过程+常见面试题)确认应答机制:发送的每一条数据都要求接收方进行确认回复,收到确认回复则认为数据安全到达。超时重原创 2021-04-02 17:20:03 · 1059 阅读 · 0 评论 -
(网络)传输层:TCP协议特性——面向连接详解(连接建立、断开详细过程+常见面试题)
文章目录三次握手建立连接四次挥手常见面试题建立连接握手为什么是三次断开连接挥手为什么是四次三次握手建立连接四次挥手注意:TCP是一个有状态的协议,每个状态表示只能进行特定的事情比如:发送了FIN请求进入FIN_WAIT1状态表示不再发送数据了,如果这时候继续send发送数据就会报错。如果服务端处于SYN_RCVD,表示等待一个ACK回复,但如果收到的是一个SYN连接请求,则认为连接异常,会发送RST要求客户端重置连接常见面试题建立连接握手为什么是三次tcp是面向连接的,通信原创 2021-04-02 09:22:00 · 1513 阅读 · 2 评论 -
(网络)传输层:UDP协议解析(简要)
说起udp想必大家都不陌生吧,今天我们就来聊聊udp协议。文章目录协议实现协议特性编程影响我们会从三个方面对UDP协议进行解析:协议实现、协议特性、编程影响。我们说一切都是为编程服务的,了解协议实现和特性是为了更好的使用udp,写出更好的代码。那么不多说,直接开始吧。协议实现首先我们要看的必然是协议头的信息16位源端端口+16位对端端口:用于表示进程,描述主机上通信的两端进程16位数据报长度:用于描述一个完整包含头部的udp报文长度,所能存放的最大大小是65535,也就是要.原创 2021-03-31 16:09:19 · 558 阅读 · 0 评论 -
(网络)应用层:https协议解析 (https加密流程,详细图解)
这次我们来学习https协议,来看看他如何提高安全性的。文章目录https协议简介身份验证加密传输对称加密非对称加密混合加密https协议简介我们知道http是一个字符串明文协议,通信容易被监听劫持,使用起来不安全,因此我们就像加密来提高安全性。于是https协议诞生了。https协议并不是一个新的协议,而是加密后的http协议,这里是s指的是ssl(Secure Sockets Layer 安全套接字协议)那么https加密流程是什么呢?我们接着说。https加密流程主要分为两个方.原创 2021-03-31 15:31:26 · 1342 阅读 · 0 评论 -
(网络)应用层:http协议解析 (详细)
今天我们来详细解析一下当今应用层最常用的协议 — http协议从各种格式出发详细介绍,感兴趣的小伙伴千万不要错过~文章目录http协议介绍URLurl的组成结构及解析http协议实现http协议格式1. 首行请求首行响应首行2. 头部信息Cookie和Session3. 空行4. 正文请求响应栗子简易http服务器实现http协议介绍名称:超文本传输协议(http,HyperText Transfer Protocol)是目前我们生活中使用最为频繁的协议之一,只要我们使用浏览器,就一定能使.原创 2021-03-30 18:18:44 · 1843 阅读 · 0 评论 -
(网络)应用层:实现简易http服务器 (详细代码)
刚刚学习了http协议的数据格式,我们就来趁热打铁,实现一个简易的http服务器吧~我们说http只是应用层的协议,在传输层使用TCP协议进行传输,http服务器本质上就是一个tcp服务器搞清楚了之后,我们就可以开始了。既然本质是tcp服务器,那么我们直接拿到之前实现的tcp服务器进行修改没看过的小伙伴请猛戳TCP通信流程以及代码实现回忆一下TCP服务器的通信流程:创建套接字,绑定地址信息,开始监听,获取新建连接,收发数据,关闭套接字那么下面就是按照上述流程实现的代码:与之前的区别就是发.原创 2021-03-30 18:17:59 · 721 阅读 · 0 评论 -
网络socket编程: sockaddr和sockaddr_in区分
在之前的socket编程中, 我们认识了一些接口, 模拟实现udp和tcp通信的时候也经常用到sockaddr和sockaddr_in两种结构体, 非常容易混乱, 今天我们就来搞清楚他们的区别.文章目录1. sockaddr2. sockaddr_in1. sockaddrsockaddr在头文件<sys/socket.h>中定义sockaddr是网络编程中通用的结构, 一般用于函数中将其他结构强转为sockaddr作为参数传递struct sockaddr { sa_fa.原创 2021-03-28 21:17:58 · 463 阅读 · 1 评论 -
网络socket编程: 实现多执行流并发TCP服务器
刚刚我们实现了一个TCP通信, 但是效果不太理想, 那么我们来实现一个能和多用户连续通信的TCP吧~TCP通信流程以及代码实现文章目录原因分析多进程实现并发服务器多线程实现并发服务器原因分析我们的TCP之所以只能和用户进行单此通信, 是因为主进程要完成的事情太多了, 他既要获取新连接, 又要与用户进行通信如果我们让一个执行流只负责一件事情, 就算某个执行流阻塞了, 也不会影响其他的执行流因此我们有两种实现方式多进程多线程多进程实现并发服务器主进程只负责获取新连接, 有新连.原创 2021-03-28 00:12:09 · 364 阅读 · 0 评论 -
网络socket编程: TCP通信流程以及代码实现
上次我们模拟实现了简易的UDP通信, 不知道大家有没有实现啊~今天我们就来看看另一个非常非常非常重要的协议 — TCP协议文章目录TCP通信流程socket接口1. 创建套接字2. 为套接字绑定地址信息3. 客户端发起连接请求4. 服务端开始监听5. 获取新建的客户端连接6. 收发数据7. 关闭套接字8. 地址转换接口代码实现TCP通信1. 封装socket接口2. 模拟实现服务端3. 模拟实现客户端TCP通信流程TCP — 传输控制协议面向连接, 可靠传输, 面向字节流tcp协议用于安.原创 2021-03-27 23:53:12 · 460 阅读 · 0 评论 -
网络socket编程: UDP通信流程以及代码实现
其实我们听TCP, UDP听得很多了, 想不想自己实现一个简易的UDP通信呢?那么我们这次来学习网络socket编程, 话不多说, 直接开整文章目录1. UDP通信流程2. socket接口创建套接字为套接字绑定地址信息发送数据接收数据关闭套接字地址转换接口3. 代码实现UDP通信封装socket接口模拟实现服务端模拟实现客户端makefile文件编写1. UDP通信流程UDP – 用户数据报协议无连接, 不可靠, 面向数据报udp协议用于实时性要求大于安全性的场景 — 视频/音频数据传.原创 2021-03-25 23:30:12 · 2186 阅读 · 1 评论