![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机网络
文章平均质量分 91
WhiteShirtI
不管你现在是什么状态 你要记住 生活中的目标就是快乐自由 每天开心
展开
-
网络 一篇博文搞懂五种常见的IO模型
概念前情阻塞:为了完成一个功能,发起调用,若不具备完成功能的条件,则调用一直阻塞等待非阻塞:为了完成一个功能,发起调用,若不具备完成功能的条件,则立即返回一个状态值阻塞与非阻塞的区别:常用于讨论函数是否阻塞,表示这个函数无法立即完成功能时是否立即返回同步:功能完成的流程通常是顺序化的,并且功能由进程自身完成异步:功能完成的流程通常是不确定的,并且功能由系统完成同步与异步的区别:通常用于讨论功能的完成方式,表示一个功能是否是顺序化且是否由自己来完成异步的种类:异步阻塞----等待别人完成功能。异原创 2021-05-27 15:18:26 · 506 阅读 · 12 评论 -
网络 DNS域名系统、ICMP协议、NAT/NAPT服务、代理服务
DNSDNS(Domain Name System)域名系统,用于存储IP地址与域名的映射关系,提供域名解析,通过域名获取服务器IP地址的服务域名:服务器地址的别名----便于记忆,但是最终通过域名访问服务器时还是要域名解析成IP地址来访问服务器注:一个域名可能对应多个IP地址当一个公司要给另一个公司发数据,就必须要知道对方的IP地址,可是当公司越来越多,记录IP地址就越来越麻烦。此时就有大佬想到了一个很好的解决方法hosts文件----记录服务器地址和IP地址之间的映射关系Hosts是一个没有原创 2021-05-10 11:13:24 · 447 阅读 · 0 评论 -
网络 链路层 | 以太网协议与ARP协议
数据链路层是计算机网络的底层,主要负责相邻设备之间的数据帧传输链路层就是负责每一个相邻结点之间的数据传输,但是相邻设备之间也需要描述识别,主要是因为每一个设备都有可能有多个相邻的设备。这种识别在链路层中是通过MAC地址来实现的MAC地址:mac地址就是网卡的硬件地址,用于识别相邻的设备,它是一个无符号6字节的整数 uint8_t mac[6]以太网协议以太网协议格式目的地址和源地址:描述识别相邻的设备之间的数据传输上层协议类型:网络层的协议类型,进行数据分用时选择上层的解析协议数据:网络层原创 2021-05-10 10:22:18 · 1188 阅读 · 0 评论 -
网络 网络层 | IP协议、网段划分、公网与私网、路由选择
网络层是用信子网的边界,是通信设备的协议最高层.其功能是负责地址管理与路由选择(为每一条网络中的数据根据想去的地方选择合适的路径),典型的协议是IP协议,典型的设备是路由器IP协议IP协议的工作类似于邮政服务,事先不需要通知版本号:包含IP版本号,例如IPV4/IPV6首部长度:标识IP报头的长度,以4字节为单位(最小20字节/最大60字节)服务类型:用于确定每个数据报的优先级级别报文总长度:指头部和数据之和的长度,单位为字节,因此数据报的最大长度不超过64k,总长度必须不超过数据链路层中.原创 2021-05-08 17:39:31 · 1942 阅读 · 0 评论 -
网络 传输层 | UDP协议与TCP协议详解(三次握手及四次挥手、滑动窗口、拥塞控制)
概念传输层:是负责应用程序之间的数据传输(通过端口的描述,描述了哪两个进程间的通信);传输层的两个主要协议:UDP 和 TCPUDP协议UDP协议全称:用户数据报协议(User Dategram Protocol, UDP)协议典型特性:无连接、不可靠、面向数据报UDP协议格式用户数据报UDP有两个字段:报头字段和数据字段报头字段包含4个内容:源端口号、目的端口号、UDP总长度、校验和。总共8个字节1、源端口号:UDP源端口号:占16位,在需要对方回信时选用。不需要时可全为0;2、目原创 2021-05-03 14:02:29 · 2644 阅读 · 0 评论 -
网络 滑动窗口机制
滑动窗口机制滑动窗口是一种流量控制技术,滑动窗口概念不仅存在于数据链路层,也存在于传输层,两者有不同的协议,但是基本原理是很相近的。其中一个重要的区别是,一个是针对帧的传送,一个是字节数据的传送。在TCP的滑动窗口协议中,滑动窗口以字节为单位,主要功能是进行数据流量管理,平衡两端之间的数据吞吐量,解决丢包问题。其基本原理是在任意时刻,发送方都维持了一个连续的允许发送的字节序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的字节序号,称为接收窗口。一个窗口的大小是由一个后沿序号和一个前沿序号来控原创 2021-05-03 14:01:05 · 1615 阅读 · 0 评论 -
网络 卧槽!牛皮了,面试官居然把TCP三次握手四次挥手问的这么详细
一、为什么握手是三次,而不是两次或者四次?答:两次不安全,四次没必要。tcp通信需要确保双方都具有数据收发的能力,因此双方都要发送SYN确保对方具有通信的能力二、为什么挥手是四次而不是三次?答:发送FIN包只能表示对方不再发送数据了,不代表对方不再接收数据,因此被动关闭方进行ACK回复之后有可能还会继续发送数据,等到不再发送数据了才会发送下一个FIN包,因此FIN包和ACK包是分开的...原创 2021-05-03 13:57:42 · 77736 阅读 · 86 评论 -
网络 应用层 | HTTP的认识及实现(模拟实现一个简单的服务器)
应用层:是TCP/IP的顶层,通过使用传输层提供的服务,直接向用户提供服务,是TCP/IP网络与用户之间的界面或接口。应用层是直面程序员的一层,因为应用层是程序员自己写的,因此应用层的协议都是程序员自己定的应用层有两个重要的协议,一个是自定制协议,一个是知名协议HTTP协议。自定义协议:程序员自己根据自己的应用场景的特点,定义协议(数据的格式/数据的描述信息)...原创 2021-04-21 13:43:42 · 527 阅读 · 1 评论 -
网络 HTTP状态码大全
HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误HTTP状态码分类分类分类描述1**信息原创 2021-04-20 22:05:44 · 327 阅读 · 0 评论 -
网络 TCP协议(C++代码|通过tcp协议实现客户端与服务端之间的通信)
TCP通信编程tcp是面向连接、可靠传输、面向字节流的传输层协议面向连接:必须建立了连接且保证双方都具有数据收发的能力,才能开始通信。(udp是无连接的,只要知道对端地址就可以直接发送消息)可靠传输:传送的数据,无差错、不丢失、不重复、并且按序到达面向字节流:通信方面也是分为客户端和服务端各端的操作流程:服务端操作流程:创建套接字端口:在内核中创建socket结构体,关联进程与网卡之间的联系为套接字绑定地址信息:网络通信中的数据都必须带有源端IP、源端端口、对端IP、对端端口、协议,这原创 2021-04-16 11:55:43 · 9543 阅读 · 11 评论 -
网络 UDP协议(C++|代码通过udp协议实现客户端与服务端之间的通信)
socket套接字编程就是在网络程序中编写代码,通过一套套的接字接口实现网络程序的编写。udp通信编程在网络通信中有客户端和服务端,它们之间是如何通信的呢?各端的操作流程:服务端操作流程:创建套接字端口:在内核中创建socket结构体为套接字绑定地址信息:网络通信中的数据都必须带有源端IP、源端端口、对端IP、对端端口、协议。在内核创建的socket结构体中描述IP地址端口以及协议,(必须主动绑定,告诉客户端自己的地址信息,如果不绑定客户端就不知道该发往哪个服务端了)为了告诉操作系统发往.原创 2021-04-12 22:12:41 · 9905 阅读 · 3 评论 -
网络 计算机网络预备知识
网络的划分:局域网(几米到几千米);城域网(几千米到几十千米);广域网(几十千米以上)IP地址是一个无符号4个字节的整数uint32_t,在网络中作为主机的唯一标识网络中的每条数据中都会包含源端IP地址和对端IP地址----标识这个数据从哪个主机发出,要交给哪个主机来接收ip地址最大有32个,最多只能表示出4g的IP地址数量,也就是最多能使用43亿个IP地址,地球上的人和每个人都用肯定是不够的。也是目前使用最多的IPv4协议。为了满足该要求,扩展到IPv6协议,能用128位来表示IP地址,uint8_原创 2021-04-08 16:38:39 · 1424 阅读 · 0 评论