All too well

UDP协议

【网络协议 9】UDP协议✅ UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都会产生一个UDP数据报,并组装成一份待发送的IP数据报,这与面向字节流的协议不同,如TCP,应用程序产生的全体数据与真正发送的单个IP数据报可能没有什么联系(主要是在传输层就进行分段了,因此不会受IP分片的影响)。 UDP的首部一共8个字节,很简单,可以参考书上,这里也不再详说。 UDP 的校验...

TCP分段与IP分片

【网络协议 8】TCP分段与IP分片✅ 我们在学习 TCP/IP 协议时都知道,TCP 报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样 IP 数据报在长度超过一定值时也会发生分片,在接收端再将分片重组。 我们先来看两个与 TCP 报文段分段和IP数据报分片密切相关的概念。 MYU(最大传输单元) MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为...

ICMP 协议、Ping、Traceroute

【网络协议 7】ICMP 协议、Ping、Traceroute ✅ ICMP 协议 ICMP 经常被认为是IP层的一个组成部分,它是网络层的一个协议,它传递差错报文以及其他需要注意的信息,ICMP 报文通常被 IP 层或更高层(TCP、UDP等)使用,它是在 IP 数据报内传输的。 ICMP 报文大致分为两类:查询报文和差错报文。 先来看差错报文。当传送 IP 数据报发生错误时(比如...

TCP中的四大定时器

【网络协议 13】TCP中的四大定时器✅ 前言 对于每个TCP连接,TCP一般要管理4个不同的定时器:重传定时器、坚持定时器、保活定时器、2MSL定时器。 重传定时器 很明显重传定时器是用来计算TCP报文段的超时重传时间的(至于超时重传时间的确定,这里涉及到一大堆的算法,书上有说,我这里不细谈了)。每发送一个报文段就会启动重传定时器,如果在定时器时间到后还没收到对该报文段的确认,就重...

IP协议、ARP协议、RARP协议

【网络协议 6】IP协议、ARP协议、RARP协议✅ IP数据报 IP是 TCP/IP 协议族中最核心的协议,所有的 TCP、UDP、ICMP、IGMP 数据都以 IP 数据报的格式传输。IP 仅提供尽力而为的传输服务,如果发生某种错误,IP 会丢失该数据,然后发送 ICMP 消息给信源端。另外,IP 数据报可以不按发送顺序接受。 IP数据报的格式如下: 前20字节和紧接其后的选...

TCP连接的建立和释放

【网络协议 4】TCP连接的建立和释放✅ TCP首部格式 先看TCP报文段的格式,如下; TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的选项。因此TCP报文段的最小长度为20个字节。 首部固定部分的各字段的意义如下: 1、源端口和目的端口:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接。另外通过目的端口来决定TCP将数据报交付于那个应...

互联网协议入门 ✅

作者: 阮一峰 日期: 2012年5月31日 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗? 互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,...

HTTP协议笔记

HTTP 规定在 HTTP 客户端与 HTTP 服务器之间的每次交互,都由一个 ASCII 码串构成的请求和一个类 MIME1 的相应组成(MIME-like)。HTTP 报文通常都是用 TCP 连接。 从层次的角度看,HTTP 是面向事务的应用层协议。所谓事务,就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,即要么所有信息交换都完成,要么一次交换都不进行。 HTTP ...

线程池,工具类

线程池 创建和销毁对象是很费时间的,所以有 创建统一的一个线程池。 通俗理解就是有一个池子,里面存放着已经创建好的线程,当有任务提交给线程池执行时,池子中的某个线程会主动执行该任务。如果池子中的线程数量不够应付数量众多的任务时,则需要自动扩充新的线程到池子中,但是该数量时有限的,就好比池塘的水界线一样。当任务比较少的时候,池子中的线程能够自动回收,释放资源。为了能够异步地提交任务和缓存未...