
网络编程
renwotao2009
努力程度之低,离拼天赋还远的很
展开
-
网卡MAC地址相关信息大全(整理)(上)
网卡地址这个概念有点混淆不清。因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的时候用的地址,一般情况下这两个地址是一样的,所以很多人都混用了,甚至不知道有区别 -_-# 网卡工作的时候,一个以太网帧60到1514(不包括crc),帧的crc是网卡自动加的,前导码是自动加的。转载 2011-11-25 21:19:05 · 924 阅读 · 0 评论 -
socket关闭之close()和shutdown()的差异
对于一个tcp连接,在c语言里一般有2种方法可以将其关闭:close(sock_fd);// 或者shutdown(sock_fd, ...);多数情况下这2个方法的效果没有区别,可以互换使用。除了:close() 是针对file的操作shutdown() 是针对socket的操作unix系统里socket是一个文件,但文件不一定是一个socket;所以在进入系统调用后和达到协议层前(发出转载 2016-05-23 21:21:56 · 9038 阅读 · 2 评论 -
网络程序的出错检测步骤
现象:实验室一个UDP程序接收不到数据。 过程:用wireshark抓到发送过来的数据,但指定端口接收不到。用netstat观察本地端口发现有两个相同的端口。检查代码,起了两个相同端口的udp socket。 经验与教训: 代码混乱,逻辑不清。应该重视代码设计 重视使用网络侦测工具,发现问题的来源网络程序的出错检测步骤: 1 分析代码 2 wireshark抓包,查看远程数据是否发送过来原创 2016-03-21 16:35:52 · 688 阅读 · 0 评论 -
TCP连接TIME_WAIT和CLOSE_WAIT状态
1 TCP连接中的状态 图1 TCP连接和断开的过程图1.1 名词解释 状态 含义 LISTEN 服务器在等待进入呼叫 SYN_RECV 一个连接请求已经到达,等待确认 SYN_SENT 应用已经开始,打开一个连接 ESTABLISHED 连接已经建立,正常数据传输状态 FIN_WAIT1 连接一端(应用)完成数据传输,主动关闭 FIN_WAIT原创 2016-03-02 15:57:00 · 5684 阅读 · 0 评论 -
IP分片和TCP分段
MTU和MSS的概念MTU最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。 例如:以太网MTU值为1500字节,802.3的MTU值为1492字节。MSS最大分段长度(Maximum Segment Size)是TCP协议头部的一个选项,MSS是指TCP报文能够携带的最大数据长度,单位为字节。MTU与I原创 2016-05-24 16:55:37 · 7488 阅读 · 0 评论 -
getaddrinfo使用详解
getaddrinfo是在gethostbyname系列函数不支持Ipv6的情况下逐渐催生的,其能够处理名字到地址以及服务到端口这两种转换,返回一个sockaddr结构的链表,这些sockaddr地址结构随后可有套接口函数(socket、bind、connect、listen等)直接调用,将协议相关性隐藏在该函数内部。应该尽量选择使用getaddrinfo函数代替之前的getxx函数族,就像应该使用转载 2015-10-02 20:46:11 · 2750 阅读 · 0 评论 -
raw socket
背景我们平常所用到的网络编程都是在应用层收发数据,每个程序只能收到发给自己的数据,即每个程序只能收到来自该程序绑定的端口的数据。收到的数据往往只包括应用层数据。某些情况下我们需要执行更底层的操作,比如监听所有本机收发的数据、修改报头等。通过原始套接字,我们可以抓取所有发送到本机的IP包(包括IP头和TCP/UDP/ICMP包头),也可以抓取所有本机收到的帧(包括数据链路层协议头)。普通的套接字无法处转载 2015-10-09 11:06:00 · 1570 阅读 · 0 评论 -
NBNS 数据包 和 NetBIOS 协议
第一,NetBIOS基本概念NetBIOS: NetBIOS Services Protocols, RFC-1001,1002,网络基本输入/输出系统协议。Provides three distinct services: (1)Name service for name registration and resolution. (2)Session service for转载 2015-12-03 11:06:04 · 5043 阅读 · 0 评论 -
RPC原理详解
RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。 下面我们将具体细化 stub 结构的实现。RPC 调用分类RPC 调用分以下两种:同步调用 客户方等待调用执行完成并返回结果。异步调用 客户方调用后不用等待执行结果返回,但转载 2015-06-29 11:26:32 · 603 阅读 · 0 评论 -
网络设备的区别
网络设备的区别 中继器: 中继器(repeater)通常配有两个端口,只是简单地把一个端口所接收到的东西复制到另一个端口,反之亦然。它复制数据时时按位复制,并且对协议毫不关心,因此它无法区分不同的帧或封包。多端口的中继器又称集线器(Hub)。 网桥: 网桥(bridge)和中继器不同,它了解链路层协议,因此可以按帧复制数据,而非按位复制。也就是说,网桥在每个端口上至少可以缓存原创 2015-04-08 20:55:53 · 1100 阅读 · 0 评论 -
wireshark抓取本地回环数据包
wireshark抓取本地回环数据包一 The NPF driver isn’t running这个错误是因为没有开启NPF服务造成的。NPF即网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困难工作的组件。它处理网络上传输的数据包,并且对用户级提供可捕获(capture)、发送(injection)和分析性能(analysi原创 2015-10-22 10:05:14 · 25595 阅读 · 3 评论