![](https://img-blog.csdnimg.cn/5b3cacf857824656b990c629112df3ae.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络
文章平均质量分 96
网络原理,网络编程,TCP_IP
马尔科686
这个作者很懒,什么都没留下…
展开
-
【网络原理】 (3) (网络层 IP协议 地址管理 路由选择 数据链路层 以太网 MTU 补充:DNS)
NAT要求公网IP必须是唯一的,私网IP可以在不同的局域网中重复出现,如果某个私网里的设备想访问公网的设备,就需要对应NAT设备(路由器),把IP地址进行映射,从而完成网络访问.反之,公网设备无法直接访问私网的设备,.不同局域网的私网设备没法直接相互访问.NAT机制能够有效的解决IP不够用的问题,但是带来的副作用就是网络环境更加复杂了.域名分级了,DNS服务器也是分级了,有一级域名的DNS服务器,还有二级域名,三级域名.查询DNS服务器就是分级来查询的.DNS是应用层的一个协议,也是当前互联网的基石.原创 2023-08-01 04:12:55 · 102 阅读 · 0 评论 -
【网络原理】 (2) (传输层 TCP内部工作机制 连接管理 TCP建立连接(三次握手) TCP断开连接(四次挥手) 滑动窗口 流量控制 拥塞控制 延时应答 捎带应答 面向字节流 异常情况)
滑动窗口的本质就是不等待的批量发送一组数据,然后使用一份时间来等待着一组数据的多个ACK了.把不需要等待就能直接发送的数据的最大的量称为"窗口大小".上图的窗口大小就是4000.当批量发送了窗口大小这些数据之后,发送方就要等待ACK了.注意:不是等所有的ACK到达了才继续往下发,而是到一个ACK,就继续往下发一条.这样就可以让我们等待的ACK始终都是4条.流量控制和拥塞控制共同决定发送方的窗口大小是多少.流量控制考虑的是接收方的处理能力.拥塞控制描述的是传输过程中,中间节点的处理能力.原创 2023-07-29 18:49:04 · 107 阅读 · 0 评论 -
【网络原理】 (1) (应用层 传输层 UDP协议 TCP协议 TCP协议段格式 TCP内部工作机制 确认应答 超时重传 连接管理)
网络原理部分我们主要学习TCP/IP协议栈这里的关键协议(TCP 和 IP),按照四层分别介绍.(物理层,我们不涉及).原创 2023-07-28 04:00:57 · 598 阅读 · 0 评论 -
【网络编程】(TCP流套接字编程 ServerSocket API Socket API 手写TCP版本的回显服务器 TCP中的长短连接)
为解决上面的问题,我们使用多线程,主线程负责进行accept.每次接收到一个连接,创建新线程 ,由这个新的线程负责处理这个新的客户端.每个线程是独立的执行流.每个独立的执行流是各自执行各自的逻辑,彼此之间是并发关系.不会出现一边阻塞而影响到另一边执行的情况.不能正确运行,没有\n是不行的.TCP协议是面向字节流的协议(字节流特性:一次读多少个字节都行).接收方无法知道我们一次要多多少字节,这就需要我们在数据传输中进行明确的约定.此处代码中,隐式约定了使用\n来作为当前代码的请求/响应分割约定.原创 2023-07-27 04:32:58 · 1102 阅读 · 2 评论 -
【网络编程】(Socket套接字 UDP数据报套接字编程 DatagramSocket API DatagramPacket API InetSocketAddress API 手写简单网络通信程序)
使用这个类表示一个socket对象.在操作系统中,把这个socket对象当成一个文件来处理.相当于是文件描述符表上的一项.普通文件对应的硬件设备是硬盘.socket文件对应的硬件设备是网卡.一个socket对象就可以和另外一台主机进行通信了.如果要和多个不同的主机通信,则需要创建多个socket.构造一个DatagramPacket以用来接收数据报,接收的数据保存在字节数组(第一个参数buf)中,接收指定长度(第二个参数length)表示UDP中传输的一个报文,构造这个对象,可以指定一些具体的数据进去.原创 2023-07-26 16:12:57 · 73 阅读 · 0 评论