上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 30 下一页
摘要: 1. 原始套接字能力: (1) 进程可以读写ICMP,IGMP等分组,如ping程序; (2) 进程可以读写内核不处理协议字段的ipv4数据报;如OSPF等; (3) 进程可以使用IP_HDRINCL套接字选项自行构造ipv4首部; 2. 原始套接字的创建: 开启ip头构造选项: 当选项开启时,我们 阅读全文
posted @ 2016-04-09 16:51 AlexAlex 阅读(3164) 评论(0) 推荐(0)
摘要: 其实在以前的文章中介绍了和这个话题相关的文章,TCP封包。 这里还想继续回顾想以前的内容,把不明白的东西弄明白: IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你的IP包大 阅读全文
posted @ 2016-04-08 00:08 AlexAlex 阅读(2086) 评论(0) 推荐(0)
摘要: TCP/IP详解系列,关于tcp拥塞控制和数据流的地方讲的不细致,或许是涉及概念/算法太多,作者略去了一些对初学者来说比较陌生的细节吧。比如SWS未说明是什么就开始介绍其避免方法,还和nagle扯在了一起,直觉告诉我二者一定有猫腻,边搜索一下,果然很有收获。今天贴在这里,分享给大家。 关键字:糊涂窗 阅读全文
posted @ 2016-04-07 23:55 AlexAlex 阅读(195) 评论(0) 推荐(0)
摘要: 1. Nagle算法: 是为了减少广域网的小分组数目,从而减小网络拥塞的出现; 该算法要求一个tcp连接上最多只能有一个未被确认的未完成的小分组,在该分组ack到达之前不能发送其他的小分组,tcp需要收集这些少量的分组,并在ack到来时以一个分组的方式发送出去;其中小分组的定义是小于MSS的任何分组 阅读全文
posted @ 2016-04-07 23:34 AlexAlex 阅读(26150) 评论(0) 推荐(2)
摘要: 1. 套接字选项函数原型: 2. 通用套接字选项: (1) SO_BROADCAST: 本选项开启或禁止进程发送广播消息的能力;只有数据报套接字支持广播,并且还必须是在支持广播消息的网络上; (2) SO_DEBUG: 本选项仅由TCP支持。当给一个TCP套接字开启本选项,内核将为TCP在该套接字和 阅读全文
posted @ 2016-04-07 15:10 AlexAlex 阅读(2265) 评论(0) 推荐(0)
摘要: 套接字的默认状态是阻塞的,这就意味着当发出一个不能立即完成的套接字调用时,其进程将被投入睡眠,等待响应操作完成,可能阻塞的套接字调用可分为以下四类: (1) 输入操作,包括read,readv,recv,recvfrom,recvmsg; (2) 输出操作,包括write,writev,send,s 阅读全文
posted @ 2016-04-06 10:41 AlexAlex 阅读(9417) 评论(0) 推荐(0)
摘要: 1. connect出错: (1) 若TCP客户端没有收到syn分节的响应,则返回ETIMEOUT错误;调用connect函数时,内核发送一个syn,若无响应则等待6s后再发送一个,若仍然无响应则等待24s后在发送一个,若总共等待75s后仍未收到响应则返回本错误; (2) 若对客户的syn响应是rs 阅读全文
posted @ 2016-04-05 22:06 AlexAlex 阅读(11540) 评论(1) 推荐(1)
摘要: 1. listen函数: listen仅由服务器调用,它做两件事情: (1) 当socket创建一个套接字的时候,它被假设为一个主动套接字,也就是说,它是一个将调用connect发起连接的客户套接字。listen函数把一个未连接的套接字转换成一个被动套接字,指示内核应该接受指向该套接字的连接请求;调 阅读全文
posted @ 2016-04-05 11:51 AlexAlex 阅读(2055) 评论(0) 推荐(0)
摘要: 1. connect函数: connect函数是把当前套接字从CLOSED状态转移到SYN_SENT状态,若成功则再转移到ESTABLISHED状态。若connect失败则该套接字不再可用,必须关闭,我们不能对这样的套接字再次调用connect函数。当循环调用connect为给定主机尝试各个ip地址 阅读全文
posted @ 2016-04-05 11:10 AlexAlex 阅读(4039) 评论(0) 推荐(0)
摘要: RPC (Remote Procedure Call Protocol) -- 远程过程调用协议 你的题目是RPC框架,首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能 阅读全文
posted @ 2016-04-01 19:19 AlexAlex 阅读(190) 评论(0) 推荐(0)
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 30 下一页