net
文章平均质量分 70
Crazy_Tortoise
A Crazy Tortoise
展开
-
iptables的基本概念和数据包流程图
iptables 相关概念iptables 介绍iptables 高级功能iptables 使用实例参考资料iptables 相关概念在正式介绍 iptables 的使用之前,我们先来看一下和 iptables 相关的一些基本概念。我们下面将会频繁使用到它们。匹配(match):符合指定的条件,比如指定的 IP转载 2014-03-04 20:03:38 · 5881 阅读 · 0 评论 -
nmap命令使用详解
[Ping扫描(Ping Sweeping)] [端口扫描(Port Scanning)] [隐蔽扫描(Stealth Scanning)] [UDP扫描(UDP Scanning)] [操作系统识别(OS Fingerprinting)] [Ident扫描(Ident Scanning)] [选项(Options)] [小结]转载 2013-11-28 15:33:56 · 1301 阅读 · 0 评论 -
同一端口如何区分不同的Socket
为了区分不同应用进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。 Socket的原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 accept()产生的Socket端口号是多少?转载 2013-11-27 23:35:13 · 784 阅读 · 0 评论 -
以太网,IP,TCP,UDP数据包分析
原文地址:http://www.cnblogs.com/feitian629/archive/2012/11/16/2774065.html1、ISO开放系统有以下几层:7应用层6表示层5会话层4传输层3转载 2013-11-27 14:21:53 · 773 阅读 · 0 评论 -
udp丢包原因分析及总结
原文地址:http://blog.sina.com.cn/s/blog_a459dcf5010153nd.html1、调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包。虽然send方法会帮你转载 2013-11-17 22:28:44 · 1395 阅读 · 0 评论 -
Socket编程指南及示例程序
原文地址: http://www.blogjava.net/wxb_nudt/archive/2007/11/01/157623.html例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nud转载 2013-11-18 01:04:05 · 897 阅读 · 0 评论 -
网络编程常见函数的返回值
以前写程序很多时候图方便不管它的返回值,因为觉得一般不会调用错误,现在发现这是一个很不好的习惯。int socket函数:成功时返回相应socket号,失败时返回-1。int bind函数:成功时返回0,失败时返回-1并会将erron置为相应的错误号。int listen函数:成功返回0,失败返回-1并设置相应的错误号。int accept函数:成功时返回新的套接字转载 2013-11-18 01:01:22 · 1272 阅读 · 0 评论 -
客户端 用不用 bind 的区别
原文地址:http://blog.chinaunix.net/uid-23193900-id-3199173.html无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用的端口来使用。 Bind()函数在成功被调用时返回0;出现错误时返转载 2013-11-27 23:17:49 · 1270 阅读 · 0 评论 -
htonl(),htons(),inet_addr(),inet_ntoa(), inet_aton()函数
htonl() 简述: 将主机的无符号长整形数转换成网络字节顺序。 #include u_long PASCAL FAR htonl( u_long hostlong); hostlong:主机字节顺序表达的32位数。 注释: 本函数将一个32位数从主机字节顺序转换成网络字节顺序。 返回值: htonl()返回一个网络字节顺序的值。 参转载 2014-07-08 11:00:45 · 911 阅读 · 0 评论 -
setsockopt()用法
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*转载 2014-04-10 16:56:50 · 818 阅读 · 0 评论 -
Linux网络编程socket错误分析
socket错误码:EINTR:4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interruptedsystem call,操作也应该继续。如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束。转载 2014-04-10 16:54:16 · 744 阅读 · 0 评论 -
路由器转发规则
源主机在发起通信之前,将Self IP与目的主机的IP进行比较,如果两者位于同一网段(用子网掩码计算后具有相同的网络号),那么源主机直接向目的主机发送ARP请求,在接收到目的主机的ARP应答后获取对方的MAC地址,然后用对方的MAC地址作为目的MAC进行报文发送,位于同一VLAN(网段)的主机互访时属于这种情况,这是互联的交换机做二层交换转发。当源主机判断目的主机与自己位于转载 2014-04-19 10:33:47 · 3335 阅读 · 0 评论 -
TCP/IP 协议簇下的各报文结构总结
一、TCP/IP 协议簇层次结构:二、具体的协议有:说明:1. ARP和RARP 用于物理地址和网络地址间的转换,应属于物理链路层。但由于ARP和RARP在以太网帧中都有各自的帧类型,所以画在以太网驱动程序和IP之间。2. ICMP和IGMP 通常用于查询网络管理,也就是被认为是IP层的组成部分。但它们都是被封装在IP报文中传输,在IP的协议类型转载 2014-03-17 08:57:23 · 845 阅读 · 0 评论 -
linux iptables + tc 流量控制
http://www.cnblogs.com/nickleback/p/3166084.htmlhttp://blog.csdn.net/maotianwang/article/details/8480165http://blog.csdn.net/maotianwang/article/details/8485029转载 2014-03-04 10:55:11 · 1192 阅读 · 0 评论 -
TC+Iptables+htb(样例)
原文地址 : http://blog.csdn.net/maotianwang/article/details/8485029前言:文章内容比较多,也相对比较复杂些,看的过程中希望用脑袋认真把每一个过程记在脑袋瓜上,这样可以加深对这章的了解,我本人也是反复看了多次 才有所收益。进入正题:队列规则 (qdisc):公平进出。例子:好比在一条高速公路上,遵守进出的原则。队列规则是用来管制网络流转载 2014-03-08 17:06:36 · 953 阅读 · 0 评论 -
linux下RAW SOCKET
raw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_I转载 2014-03-03 15:22:18 · 917 阅读 · 0 评论 -
UDP可靠传输那些事
原文地址:http://blog.csdn.net/danscort2000/article/details/8432778 有空来论坛走走,发现讨论udp可靠传输又热了起来,有人认为udp高效率,有人认为udp丢包重传机制容易控制,还有朋友搞极限测试,当然也有人推销自己的东西,这里写一点我个人的看法。 udp可靠传输其实非常非常的简单,我最开始接触udp可靠传输大转载 2013-11-17 23:07:01 · 941 阅读 · 0 评论 -
setsocketopt设置socket应用
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,转载 2013-11-17 12:24:36 · 726 阅读 · 0 评论 -
unix路由表flag标志位
在Unix系统中可以通过netstat -r命令查看系统的路由信息,在路由表中涉及到的flag标志位如下:输出项 说明 Destination 目标网段或者主机 Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 Genmask 网络掩码 Flags 标记。一些可能的标记如下: U — 路由是活动的 H — 目标是一个转载 2013-08-15 21:09:01 · 5350 阅读 · 1 评论 -
linux编程获取本机IP地址的三种方法
这 是一项不太清晰而且没有多大意义的工作。一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚 拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡,用户计算机所在网络拓扑结构未知,主机名设置是一个可选项并且同样可 以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇转载 2013-08-22 20:04:07 · 538 阅读 · 0 评论 -
socket编程头文件和常用函数
sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数转载 2013-08-21 09:31:34 · 689 阅读 · 0 评论 -
struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表
Linux 用户态与内核态的交互 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与用户空间的通 读,也在最新版本中改变为netlink,无疑,它将是Linux用户态与内核态交流的主要方法之一。它的通信依据是转载 2013-08-20 09:37:40 · 698 阅读 · 0 评论 -
Linux下的UDP Socket简单例子
客户端代码 client.c#include #include #include #include int main(int argc, char **argv){ int sockfd; struct sockaddr_in servaddr; sockfd = socket(PF_INET, SOCK_DGRAM, 0);转载 2013-08-19 19:36:21 · 805 阅读 · 0 评论 -
Linux kernel路由机制分析
一.前言我对linux2.4.18的相关代码进行了阅读,从关键的几个接口函数入手,进而理清了整个路由部分的主要脉胳,理解了一些细节问题的处理,但还是有些问题还没有完全搞清楚。路由部分代码主要在linux代码树的/net/ipv4/下面: 对于下面报告内容的组织,我想通过由整体到部分到细节的顺序,尽量把我阅读代码学习到的所有的知识做一个有层次有条理的总结。转载 2013-08-20 09:50:55 · 1077 阅读 · 0 评论 -
Linux系统下UDP发送和接收广播消息小例子
// 发送端 #include #include #include #include #include #include #include #include #include using namespace std; int main() { setvbuf(stdout转载 2013-08-19 19:37:16 · 912 阅读 · 0 评论 -
用Zebra做简单的RIP实验
RIP是应用较早、使用较普遍的IGP,适用于小型同类网络,是典型的距离向量(distance-vector)协 议。RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同 目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RI转载 2013-08-18 18:17:15 · 2017 阅读 · 0 评论 -
RIP、OSPF、BGP认识
RIP是路由信息协议(Routing Information Protocol)的缩写,采用距离向量算法,是当今应用最为广泛的内部网关协议。在默认情况下,RIP使用一种非常简单的度量制度:距离就是通往目的站点所需经过的链路数,取值为1~15,数值16表示无穷大。RIP进程使用UDP的520端口来发送和接收RIP分组。RIP分组每隔30s以广播的形式发送一次,为了防止出现“广播风暴”,其后续的的分组转载 2013-07-22 15:11:42 · 794 阅读 · 0 评论 -
在Linux主机下的软路由
实验名称:在Linux主机下的软路由实验说明:此实验不需要安装任务软件包。Linux自带的!!实验拓扑:ip地址规划如图所示:实验环境:测试机是windows或者是Linux机子都无所谓,只要保证充当路由功能的机子是Linux就行了!!实验目的:就是在Linux环境下让ip 192.168.1.121的这台机子和ip 10.0.0.100机子能相互通信。转载 2013-08-16 13:36:12 · 989 阅读 · 0 评论 -
zebra路由软件使用大全
前言Zebra是一个路由软件包,提供基于TCP/IP路由服务,支持RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP- 4, 和 BGP-4+等众多路由协议。Zebra还支持BGP特性路由反射器(Route Reflector)。除了传统的 IPv4路由协议,Zebra也支持IPv6路由协议。如果运行的SNMP守护进程(需要ucd-snmp)支持SMUX协转载 2013-08-18 15:09:09 · 3830 阅读 · 0 评论 -
ubuntu中关闭防火墙
1.关闭ubuntu的防火墙 ufw disable2.卸载了iptables apt-get remove iptables1.用iptables -F这个命令来关闭防火墙,但是使用这个命令前,千万记得用iptables -L查看一下你的系统中所有链的默认target,iptables -F这个命令只是清除所有规则,只不会真正关闭iptables.想象一下,如果你转载 2013-08-18 16:38:06 · 1450 阅读 · 0 评论 -
socket通信中select函数的使用和解释
最近在写一个网络通信函数,参考别人的代码时对select()函数的使用存有疑惑,不太确定具体的使用方法,何时使用,以及其作用。在网上搜到一篇文章,觉得介绍的不错,收藏学习。先自我总结一下。 select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet转载 2013-10-17 23:18:26 · 878 阅读 · 0 评论 -
数据包传输过程中MAC地址以及IP地址的变化情况
mac地址经过路由或路由主机是都是发生改变的,源发送主机是不知道目的主机的MAC地址的,但是知道IP。而IP地址一般是不会发生变化的。网上有一幅图很好的表明了这个规则转载 2013-09-25 11:13:34 · 3978 阅读 · 1 评论 -
网络学习笔记(一)
以太网它不是一种具体的网络,是一种技术规范。 以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法。以太网在互联设备之间以10~100Mbps的速率传送信息包,双绞线电缆10 Base T以太网由于其低成本、高可靠性以及10Mbps的速率而成为应用最为广泛的以太网技术。直扩的无线以太网可达11Mbps,许多制造供应商提供的产品都原创 2013-10-04 17:30:43 · 1983 阅读 · 0 评论 -
IP地址和子网掩码
IP地址的长度为32位,分为4段,每段8位,用十进制数字表示(点分十进制),每段数字范围为0~255,段与段之间用句点隔开。IP地址由两部分组成,一部分为网络号,标识的是Internet上的一个子网,另一部分为主机号,标识的是子网中的某台主机。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数-2);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。IP地址转载 2013-09-04 14:40:31 · 1434 阅读 · 0 评论 -
ICMP消息类型
ICMP是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。TTL-exceeded消息。在Ping和tracert不同主机原创 2013-09-04 11:37:49 · 5935 阅读 · 0 评论 -
Linux下发送与接收组播数据(socket编程)
Sender.cpp[c-sharp] view plaincopyprint?#include #include #include #include #include #include #include #include #include转载 2013-09-07 10:35:43 · 1135 阅读 · 0 评论 -
路由器基础
路由器英文名称为Router,是一种用于连接多个网络或网段的网络设备。这些网络可以是几个使用不同协议和体系结构的网络(比如互联网与局域网),可以是几个不同网段的网络(比如大型互联网中不同部门的网络),当数据信息从一个部门网络传输到另外一个部门网络时,可以用路由器完成。现在,家庭局域网也越来越多地采用路由器宽带共享的方式上网。 路由器在连接不同网络或网段时,可以对这些网络之间的数据信息进行转载 2013-08-31 12:27:00 · 625 阅读 · 0 评论 -
TCP/IP协议
TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。 TCP/IP协议模块关系从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。TCP/IP协议并不完全符合OSI的七层参考模型,OSI(Open System Interconnect)是传统的开放式系统互连参考模型,是一种转载 2013-08-31 12:28:02 · 605 阅读 · 0 评论 -
点到点协议PPP
PPP协议:point-to-point protocol一种在点到点的串行线路上为发送IP数据而使用的数据链路协议。转载 2013-09-05 22:03:35 · 744 阅读 · 0 评论 -
动态路由中的几种常见metric
当到达一个网络有多条路径的时候,路由器会根据甚么来选择最优路径,一般来讲路由器会根据以下几种度量值来选择最佳路由。 1、跳数 它可以简单的记录经过路由器的个数。例如,数据从路由器A发出,经过路由器B到达其他网络,那么其跳数为1,如果经过C到达其他网络,它经过的路由器为2,那么其跳数为2。在RIP中,跳数是衡量路径的主要标准,其最大跳数16,超过16即为不可达。 2转载 2013-07-20 19:22:41 · 1537 阅读 · 0 评论