网络
文章平均质量分 84
ArchyLi
一个学习路上人。当然还差很多。
展开
-
深入TCP(一)--TCP报文段首部分析
TCP是网络中的重点中的重点,网络也叫做IP/TCP协议,因此也能看出TCP的重要性。因此我便想按照三部分来叙述TCP的相关知识。一、TCP报文格式TCP协议主要分为两部分(1)分段头:TCP为了实现端到端可靠传输所加上的控制信息(2)数据:指由高层即应用层而来的数据。二、TCP报文格式分析2.1首部字段源和目的端口:占16比特。用于多路复用/多路分解来自或原创 2017-07-20 20:33:08 · 4147 阅读 · 0 评论 -
深入TCP(三)--三次握手和四次挥手
经过前面两篇文章的铺垫,我们对于TCP有了一个较为明显的认识,因此此篇文章便讲解建立连接和断开连接的过程–三次握手四次挥手。一、建立连接(1)窗口机制TCP采用的是窗口机制进行流量控制。那么什么是窗口机制呢?窗口机制实际上是一种流量控制的手段,它是一段缓冲区,在信息传递的过程中用户端和服务器端各自分配一块缓冲区来存储接收的数据,此时通讯的时候我们需要告诉对方我们的缓冲区的大原创 2018-01-28 20:51:59 · 1206 阅读 · 1 评论 -
poll()的实现与详解
poll不同于select使用三个位图表示fdset的方式,poll使用一个pollfd的指针来实现。因为select的实现和poll的实现非常类似,知识描述fd集合的方式有所不同,poll使用的是pollfd而不是select中的fd_set结构,其他类似,所以poll的实现相比于select实现简单。首先我们看下Linux下的poll()是如何描述的一、poll()函数原创 2017-07-31 23:19:11 · 4058 阅读 · 4 评论 -
关于TCP黏包问题
最近发现自己对于TCP通讯中的黏包问题还有疑问,查阅资料做下总结。 一、TCP黏包问题 TCP黏包问题是因为发送方把若干数据发送,接收方收到数据时候黏在一包,从接受缓冲区来看,后一包的数据黏在前一包的尾部。 二、黏包出现的原因 TCP黏包问题主要出现在两个方面 (1)发送方问题 首先TCP会默认使用Nagle算法,Nagle算法主要做两件事。 第一:上一包分组得到确认,才会发送下一分组原创 2017-09-27 19:17:55 · 2267 阅读 · 0 评论 -
深入TCP(二)--可靠传输&流量控制&拥塞控制
一、TCP可靠性与特点我们知道TCP在传输过程中是比较可靠的,具体可靠性又是如何体现的呢。可靠性:基于应答机制。只有经过确认的消息才是可靠的。请求和确认是双方都要做的提供面向链接的全双工的面向字节流的服务。基于序号的请求机制,所以数据按序到达。基于序号可以确认丢包,此时有丢包重传机制。基于滑动窗口来进行一个流量控制,滑动窗口是自己接收缓冲区的大小出现了数据大面积丢包不重传少发或原创 2017-08-01 20:47:49 · 900 阅读 · 0 评论 -
arp协议
一、ARP协议简介ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供该节点的MAC地址。 源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,因此在通讯前必须获得目的主机的硬件地址,ARP协议就起这个作用。二、工作过程ARP协议只原创 2017-07-23 23:14:05 · 1873 阅读 · 0 评论 -
CRC效验算法
1.CRC简介CRC即循环冗余效验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。2.从奇偶效验说起所谓通讯过程的校验是指在通讯数据后加上一些附加信息,通过这些附加信息来判断接收到的数据是原创 2017-07-23 21:49:13 · 1440 阅读 · 0 评论 -
NAT基本原理及应用
1 概述1.1 简介1.1.1 名词解释公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。私有IP地址:也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址:10.0.0.0 ——— 1转载 2017-07-19 16:03:19 · 427 阅读 · 0 评论 -
TCP定时器相关总结
TCP 是提供可靠的传输层,它使用的方法之一就是确认从另一端收到的数据。但是数据和确认都可能会丢失。TCP 通过在发送时设置一个定时器来解决这个问题。如果当定时器溢出时还没收到确认,它就会重传该数据。关键在于超时和重传策略,即怎样决定超时的时间间隔和如何确定重传的频率。对于每个连接,TCP 管理着四个不同的定时器:重传定时器、坚持定时器、保活定时器 以及 2MSL 定时器。TCP使用四原创 2017-07-22 22:04:10 · 448 阅读 · 0 评论 -
select服务器的实现
一、五种I/O模型Linux下共有五种I/O模型阻塞I/O非阻塞I/O多路复用I/O(select和poll)信号驱动I/O(SIGLO)异步I/O说明:前四种都是同步,只有最后一种才是异步I/O(1)阻塞I/O进程会一直阻塞,直到数据拷贝完成。应用程序调用IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,程序则阻塞等待。若果数据准备好了,从内核空间拷贝到用户原创 2017-07-30 10:54:11 · 1083 阅读 · 0 评论 -
常见的网络端口号及其分类
一、端口号的概念在网络技术中,端口一般有两个意思,一个是物理端口,一个是逻辑意义上的端口。 物理端一般有ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。 逻辑上的端口有TCP/IP协议中的端口,端口号的范围从0到65535,每个端口号又有不同的含义,有HTTP中的80端口等。(1)端口号的理解我们知道一个IP对应一台物理主原创 2017-07-20 19:16:27 · 3623 阅读 · 0 评论