网络
ChaseRaod
这个作者很懒,什么都没留下…
展开
-
网络基础:TCP协议
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体 的TCP层。TCP为了保证原创 2017-07-21 00:10:19 · 331 阅读 · 1 评论 -
I/O多路复用之epoll
epoll()是Linux特有的I/O复用函数。它在实现和使用上与select,poll有很大的差异。 关于select和poll可以参考:I/O多路复用之select , I/O多路复用之poll 首先,epoll使用一组函数来完成任务,而不是单个函数。其次,epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而无须像select和poll那样每次调用都要...原创 2018-02-24 13:51:41 · 350 阅读 · 0 评论 -
I/O多路复用
关于I/O多路复用:I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读...原创 2018-02-19 21:33:38 · 524 阅读 · 0 评论 -
socket读写返回值
在调用socket读写函数read(),write()时,都会有返回值。如果没有正确处理返回值,就可能引入一些问题总结了以下几点1当read()或者write()函数返回值大于0时,表示实际从缓冲区读取或者写入的字节数目2当read()函数返回值为0时,表示对端已经关闭了 socket,这时候也要关闭这个socket,否则会导致socket泄露。netstat命令查看下,如果有clos...转载 2018-02-19 21:23:30 · 1364 阅读 · 0 评论 -
TCP与UDP的完整区别
TCP UDPTCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证 UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消息 3.拥有大量Client转载 2017-10-06 13:21:49 · 412 阅读 · 0 评论 -
网络基础
这篇文章因为图中包含太多图片,转载后图片容易丢失,所以我直接给链接,很棒的文章,分享给大家,也方便自己学习。 http://www.jianshu.com/p/89f73d9163f0转载 2017-08-31 15:13:27 · 327 阅读 · 0 评论 -
TCP四次挥手中的TIME_WAIT状态存在的理由
上图就是TCP中的四次挥手: (1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。(3)第三次挥手:Server发送一个FIN,用来关闭S原创 2017-07-22 23:43:45 · 1592 阅读 · 2 评论 -
ARP协议和RARP协议
ARP协议地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的MAC地址;收到返回消息后将该IP地址和MAC地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。比如,当边界路由器收到一个数据报时,原创 2017-07-20 22:49:16 · 527 阅读 · 0 评论 -
解决TCP粘包问题
① TCP是个流协议,它存在粘包问题TCP是一个基于字节流的传输服务,”流”意味着TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。主机A向主机B发送两个数据包,主机B的接收情况可能是产生粘包问题的原因有以下几个:第一 。应用层调用write方法,将应用层的缓冲区中的数据拷贝到套接字的发送...转载 2018-03-29 10:56:53 · 746 阅读 · 0 评论