- 博客(8)
- 收藏
- 关注
原创 ping命令产生的ICMP数据包流向
Ping www.google.com 这中间发生了什么? 拓扑图如下: 假设我是A,google的服务器的是BA> Ping 111.200.2.21,首先A的网络层构造ICMP报文,ip.srt=111.200.1.2ip.dst=111.200.2.22 用子网掩码判断,发现dst不是和我在同一个子网,于是,在数链层广播ARP,请求网关的MAC地址(假设
2013-12-22 16:12:56 4787
原创 fork调用的形象描述
如果没有fork(),则在以前,虽然server的主机(即监听套接字)可以指定一个分机(即连接套接字)来与客户通话,但是,若给分机一直在通话中, 那么,即使有电话打进主机来,也必须排队等候,这就是为什么listen的第二个参数,即允许等待的人数,一直到该分机通话完成才可以。 但是,现在有了fork调用,使得分机还在通话中时,主机也可以接进来其他的电话,指派别的分
2013-12-07 10:52:56 741
转载 size_t 类型
size_t 类型size_t是一种无符号的整型数,它的取值没有负数,在数组中也用不到负数,而它的取值范围是整型数的双倍。sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。size_t: size of an objectssize_t: size of an object or –1
2013-12-07 09:23:01 784
原创 time_wait状态存在的意义
描述过程: client调用close函数,给server发送FIN,请求关闭连接,server受到FIN之后给client返回确认ACK,同时关闭读通道(这里可以参考shutdown和close的差别)也就是说现在不能再在client上读取东西了,现在的read返回0,此时的server的tcp状态转化为CLOSE_WAIT状态 client受到对自己的FIN确认后,
2013-12-06 21:00:11 1436
原创 建立tcp连接过程的形象描述
建立tcp连接就好比一个电话系统。socket函数等同于有电话可用,bind函数是告诉别人你的电话号码,这样他们就可以呼叫你。 listen函数是打开电话响铃,这样当一个外来呼叫达到时,你就可以听到,connect函数要求我们知道对方的电话号码并拨打它。accept函数发送在被呼叫的人 应答电话之时。由accept返回客户的标识(即客户的ip地址和端口
2013-12-06 19:55:54 902
转载 TCP字节流与UDP数据报
TCP字节流与UDP数据报“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考! “TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的
2013-12-06 17:04:33 838
原创 协议控制卡之分用tcp接受的IP数据报
tcp服务器必须accept客户的连接,并在连接建立完成之后(也就是说,但tcp的三次握手结束之后)才被告知客户的ip地址和端口号。只有这个时候,如果服务器不喜欢客户的ip地址和端口号,才能关闭连接,这并不是对tcp的要求特性,这只是插口api的通常工作方式 当tcp受到一股目的端口是23的报文段时(假设本地端口是23),它调用in_pcblookup,搜索它的整个internet
2013-12-06 09:46:10 802
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人