
计算机网络
文章平均质量分 73
啊浪的博客
细节决定一切。
最近会将很久之前总结的相关笔记整理成文章,以作总结。侵即删。
展开
-
SYNCookie原理
发起一个TCP 连接时,客户端将一个SYN包发送给服务器。作为响应,服务器将SYN + ACK 包返回给客户端。此数据包中有一个序号,它被TC 用来重新组装数据流。SYN Cookies是根据以下规则构造的初始序号:令t为一个缓慢递增的时间戳(通常为time()>>6,提供64 秒的分辨率);令m为服务器会在SYN 队列条目中存储的最大分段大小(Maximum ...原创 2017-10-06 11:16:44 · 1502 阅读 · 0 评论 -
一致性hash算法
分布式算法服务器的负载均衡的算法有很多,包括:轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法。典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1/N原创 2017-10-22 11:08:48 · 416 阅读 · 1 评论 -
传统拥塞控制
RTT(Round-TripTime):往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。RTT测量方法1、TCP Timestam选项: RTT = 当前时间 - 数据包中Timestamp选项的回显时间。2、重传队列中数据包的TCP控制块。在TCP重传队列中保存原创 2017-10-08 01:02:26 · 429 阅读 · 1 评论 -
Netty浅析
简介Netty是一个异步网络IO框架,简单说就是帮我们专注于收发包的细节且提供高性能IO复用,在恰当的时候(如Tcp收满一个逻辑包后),回调我们的业务逻辑代码。Netty基于NIO,整个Netty API体系都是异步的(可通过callback被动通知模式、Future主动通知模式进行后续的业务逻辑操作)。组件介绍Channels代表一次具体的管道连接(文件设备或Socket),连接着两端的的读写。...原创 2018-06-13 23:18:22 · 404 阅读 · 0 评论 -
linux网络API细节
connect函数,是收到syn+ack,发送ack之后返回;accept函数跟三次握手没有关系,accept是从accept队列里面取一条已建立好的连接;bind函数只是进程占用ip+port;声明:该ip+port被这个进程占用了;backlog是listen函数传入的第二个参数客户端调用connect函数建立连接,内部是发送了一个SYN包到服务端.服务端原创 2017-10-08 11:44:22 · 656 阅读 · 1 评论 -
Quic浅析
简介QUIC(Quick UDP Internet Connections)基于UDP的传输层协议,提供像TCP一样的可靠性。在提高web应用性能上,可以选择在应用层使用HTTP2.0实现多路传输,在物理层使用CDN解决网络拥塞和最后一公里问题。在传输层,目前主要使用TCP,但由于TCP本身的问题(一个充满补丁的丑陋的协议),成为了限制web应用性能的一个瓶颈。优势避免前序包阻...原创 2018-06-14 22:55:15 · 27554 阅读 · 0 评论 -
大话CDN
简介CDN(Content Delivery Network)内容分发网络,提供静态图片、点播视频、视频直播、全站加速、移动加速、HTTPS加速、安全防护等多种业务分发功能的分布式平台。目的通过在Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,用户可以就近取得所需的内容,提高用户访问网站的响应速度。工作流程 当用户访问已经加入CDN...原创 2018-06-13 23:10:52 · 435 阅读 · 0 评论 -
运输层UDP协议
//UDP包发送失败不会产生ICMP差错报文?长度字段为2字节(16位),最大表示65535,所以UDP包长度最大为65535(含协议头8个字节),但考虑到MTU问题,整包最好不要超过1500字节,避免出现ip层分片。...原创 2017-09-30 15:36:39 · 634 阅读 · 0 评论 -
运输层TCP协议
协议格式TCP建连(三次握手)和TCP断连(四次挥手)同时打开同时关闭TCP顺序性(流式)原理:分片组包、序列号TCP是流状态协议:不一定顺序接收,但是一定会顺序返回给应用层。比如A write 两次(123、456)。B Read了两次,可能一次过收到123456、也可能分两次接收12、3456如果源主机使用同样的连接发送另一个报文段,那么这个报文段的序列号等于前一个报文段的序列号与前一个报文段...原创 2017-10-04 20:50:32 · 1236 阅读 · 1 评论 -
一个数据包发送的旅程
应用层:首先结合应用层的协议,我们把这些数据放到一个缓冲区内,然后形成了应用层的报文data。传输层 :数据通过传输层发送,比如TCP。在这里报文打上了传输头的包头(TCP/UDP),主要包含端口号。这样就组成了tcp的数据传送单位segment。tcp是一种端到端的协议,利用这些信息,比如tcp首部中的确认序号(根据这个确保数据顺序接收,IP也有不过那叫分片),根据这些数字,原创 2017-10-05 18:45:45 · 1631 阅读 · 1 评论 -
HTTPS简介
简介1、HTTPS是使用TLS/SSL加密的HTTP协议。2、HTTP采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险。而协议TLS/SSL具有身份验证、信息加密和完整性校验的功能。3、TLS的基本工作方式是,客户端使用非对称加密与服务器通信,实现身份验证并协商对称密钥,之后采用协商密钥对信息以及信息摘要进行对称加密。4、解决身份验证问题的关键是确保获取的服务器公钥是合法的,能够验证服务器...原创 2017-07-07 18:26:32 · 2439 阅读 · 0 评论 -
TCP/IP协议族
原创 2017-09-30 10:39:41 · 261 阅读 · 0 评论 -
ARP和RARP
ARP(地址解析:AddressResolution Protocol)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址缓存表),如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议广播包,这个广播包里面有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己原创 2017-09-30 11:22:16 · 402 阅读 · 0 评论 -
ICMP、Ping、Traceroute
ICMP:当传送IP数据包发生错误--比如主机不可达等等,ICMP协议会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。Ping:给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数...原创 2017-09-30 14:54:32 · 568 阅读 · 0 评论 -
网络层IP协议
协议格式IP分片及MTU原创 2017-09-30 12:37:46 · 495 阅读 · 0 评论 -
TCP四次挥手和TIME_WAIT
FIN_WAIT_1 : FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是: FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情...原创 2017-10-06 10:19:38 · 1512 阅读 · 1 评论 -
TCP三次握手
三次握手过程LISTEN: 表示服务器端的某个SOCKET处于监听状态,可以接受连接了。SYN_SENT : 当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文(同步序列编号SynchronizeSequence Numbers),随即进入SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。(发送端)原创 2017-10-05 19:54:27 · 306 阅读 · 1 评论