网络物理连接
两台电脑直接相连: 交叉双绞线 crossover cable x-over cable 使用一根交叉双绞线(跟普通网线很相似,不过线序不一样,一般卖电脑配件的地方都能做,1块钱/米),连接到两台电脑的网卡上,给两台电脑手动设置IP地址(要求两个IP地址出于同一个网段。比如电脑A:10.10.10.1,子网掩码255.255.255.0;电脑B:10.10.10.2,子网掩码255.255.255.0) 一端: 白橙/橙/白绿/蓝/白蓝/绿/白棕/棕 另一端:白绿/绿/白橙/蓝/白蓝/橙/白棕/棕 5 无线局域网 需要两个电脑都有无线网卡,在其中一台上新建一个点对点连接,让另一台电脑连到这个无线网络上就行了。不过IP还是得手动设置,规则跟上面的一样。 6 两台电脑都连接到一个交换机上 找一台交换机(家用小型交换机价格在80元左右),两根网线(这里的网线是普通网线,不是上面提到的交叉线)。两个电脑都连接到交换机上,手工设置IP就可以了。 网线8根线中真正有用的4根:1 2 3 6四根 两台电脑相连还可通过一些无线方式 交叉网线 平行网线: 自己开发产品中遇到网线RX TX接反也可以,网上查到资料解决疑问: 如果遇到交叉和平行线都可以联通的情况时,不要意外,现在很多高档一些的交换机都可以自动转换线序) 设备 设备 线型 计算机—-计算机 交叉线 计算机—-交换机 平行线 计算机—-UP-LINK口 交叉线 交换机—-交换机 交叉线 交换机—-UP-LINK口 平行线 不过现在多数交换机都有自动识别功能,他们之间使用平行线也没有问题
网络设备 路由器 交换机
多级别路由器的设置: 为了无线上网购买了一个Dlink路由器,但是用不起来 不用路由器电脑连接可以上网,配置是: IP地址 192.168.0.49 默认网关和DNS设置为192.168.0.1 连不上了,后来做一些尝试,偶然就弄通了,做一个总结: 将路由器地址LAN一端设置为192.168.2.1 然后网络连接设置,将WAN一端设置为静态地址192.168.0.53 这样我的电脑再连接上路由器, 默认网关和DNS设置为192.168.2.1就可以了 无线AP(Access Point)即无线接入点,它是用于无线网络的无线交换机
网络地址分类 子网掩码
子网掩码 subnet mask,子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。 I P 地址 192.168.0.1 子网掩码 255.255.255.0 和 I P 地址 192.168.0.254 子网掩码 255.255.255.0 运算后都是192.168.0.0,所以是同一网络 对于A类地址来说,默认的子网掩码是255.0.0.0;用7位(bit)来标识网络号,24位标识主机号,最前面一位为”0”;A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个只可能的A类网络,每个A类网络最多可以连接16777214台主机。 对于B类地址来说默认的子网掩码是255.255.0.0;用14位来标识网络号,16位标识主机号,前面两位是”10”。B类地址的第一段取值介于128~191之间;B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机 对于C类地址来说默认的子网掩码是255.255.255.0;C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。二进制形式的子网掩码:1111 1111.1111 1111.1111 1111.0000 0000 利用主机数来计算子网掩码 如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台: 1) 700=1010111100 2)该二进制为十位数,N = 10 3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255 然后再从后向前将后10位置0,即为: 11111111.11111111.11111100.00000000 即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址168.195.0.0的子网掩码。 192.168.255.254 is valid, 192.168.255.255 is not valid
网络配置
自动获得IP地址和手动配置IP地址
可以自动获得IP地址往往是网络开启了DHCP自动配置IP地址服务器功能 有时自动获得IP地址连不上,只得手动配置IP地址,如: IP地址:192.168.1.120 子网掩码:255.255.255.0 使用下面的DNS服务器地址: 首选DNS服务器地址 192.168.1.1 但有时手动不行需要自动
DHCP
是 Dynamic Host Configuration Protocol(动态主机配置协议)缩写,动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。 它的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 “动态性” ,若在有限的 IP 资源环境中,BOOTP 的一对一对应会造成非常严重的资源浪费。 DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 “租约” 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。 DHCP 的分配形式 首先,必须至少有一台 DHCP 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商 TCP/IP 的设定环境。 当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.0.0.0 ,而目的地址则为 255.255.255.255 ,然后再附上 DHCP discover 的信息,向网络进行广播。 在 Windows 的预设情形下,DHCP discover 的等待时间预设为 1 秒,也就是当客户端将第一个 DHCP discover 封包送出去之后,在 1 秒之内没有得到响应的话,就会进行第二次 DHCP discover 广播。若一直得不到响应的情况下,客户端一共会有四次 DHCP discover 广播(包括第一次在内),除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9、13、16 秒。如果都没有得到 DHCP 服务器的响应,客户端则会显示错误信息,宣告 DHCP discover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次 DHCP discover 的过程。 == 在主机多的情况下,一旦网络出现了什么变化的话,我只是需要在DHCP服务器上进行一下修改,整个网络就又可以重新使用了,而客户端就仅仅需要重新启动一次,重新获得IP就达到了网络设置的修改。如果采用固定IP地址的方案,那么我们就要修改每一台电脑。无疑,这是非常痛苦的! 不过它也有缺点,那就是需要占用一台机器来专门做DHCP服务器。特别是主机多了的情况下,如果服务器不稳定,还会出现IP不能回收以及IP发放不出去这类问题! == DHCP流程: DHCP服务是由服务器端和客户端组成的。客户端请求配置,服务器分发配置。DHCP协议是一个应用层的协议,DHCP客户端使用的是熟知的UDP端口68发出请求,而DHCP服务器使用熟知的UDP端口67响应客户端。DHCP(动态主机配置协议)是从BOOTP协议发展而来的用于自动分配客户端计算机IP地址的一种标准协议,在RFC 2131中进行定义。Windows服务器操作系统中,均包含DHCP服务器组件。 现在具体看一下客户与服务器的工作流程。 首先假设一个案例的环境以及说明:一个使用路由器与外界割开的局域网,网络ID为1.0.0.0/8,有多台DHCP服务器,其中一台DHCP服务器的IP 地址为1.1.1.1,MAC地址为aaaaaaaaaaaa。这台DHCP服务器可以提供的地址范围是1.9.9.9~1.255.255.254。局域网内有另一台被配置为DHCP客户端的机器,它的MAC地址为112233445566。 <1>客户机请求IP地址配置。这是dhcp流程的第一步,也称为dhcpdiscover。当客户机启动时,客户机上的IP地址被配置为0.0.0.0。由于使用这样的IP地址是不能进行正常通信,客户机就必须通过DHCP服务器来获取一个合法的IP,而客户机又不知道服务器的IP,所以客户机这个时候会对整个网络,也就是255.255.255.255做一全网广播。这个广播包的内容大致是这样:”网络里有没有DHCP服务器?如果有,谁可以给我一个 IP地址呢?”注 意,除非我们路由器上做了相关的dhcp转发设定,否则是不会路由这样的广播包。因为若转发全网广播这会迫使整个Internet都接收这样的包,大量的 广播包会对网络造成阻塞,影响了Internet的性能。请记住这句话:“如果dhcp客户端先前有一个dhcp服务器分配的IP,而在续约的时候 dhcp服务器并没提供服务,那么客户端将继续使用这个IP。如果dhcp客户端第一次被配置,而在申请租约的时候服务器不存在,那么客户端将根据注册表 来选择是自动配置169.254.0.0,还是0.0.0.0” 这个discover包的贞结构以及IP报头结构简化以后应该如此:
Dmac:ffffffffffff Smac:112233445566 Dip:255.255.255.255 Sip:0.0.0.0
< 2>服务器响应。dhcp服务流程的第2步,也称为dhcpoffer。当网络内的所有dhcp服务器接收到客户机请求IP地址时,它就在自己的 IP地址库中查找是否有空闲IP提供给客户。如果有,dhcp服务器就在数据库中顺序的将空闲Ip地址做上标记,然后加入到dhcpoffer消息中把这个包广播出去。注意,客户机在收到dhcpoffer数据包时,虽然客户机选择了IP地址,但并没有设定到tcp/ip配置中,所以其ip地址仍然是 0.0.0.0。 这是简化后的offer包:
Dmac:112233445566 Smac:aaaaaaaaaaaa Dip:255.255.255.255 Sip:1.1.1.1
< 3>客户机选中网络某台dhcp服务器并选择其所提供的IP。这是dhcp服务流程的第3步,也称为dhcprequest。Dhcp客户机发送 dhcprequest广播包,在广播包中的[dhcp服务器表识]字段被设置的dhcp服务器IP地址是被dhcp客户端选中的dhcp服务器,所有其他dhcp服务器都将把刚才分发出去的IP地址取消。 这是简化后的request包:
Dmac:ffffffffffff Smac:112233445566 Dip:255.255.255.255 Sip:0.0.0.0
< 4>服务器确认IP租约。这也是租约过程中的最后一步,也称为dhcpack/dhcpnak。Dhcp服务器接收到dhcprequest后,以 dhcpack消息的形式向客户机广播成功的确认,该消息包含IP地址的有效租约和其他可能的配置信息,比如dns的设置。当客户机收dhcpack消息时,就完成了tcp/ip的初始化,也就是说客户机可以在网络上通信了。如果客户机接收到来自服务器dhcpnak不成功确认的数据包,它将重新开始 dhcp租约过程。如 果DHCP客户端的操作系统为Windows 2000及其后版本,当DHCP客户端接收到DHCPACK广播消息后,会向网络发出三个针对此IP地址的ARP解析请求以执行冲突检测,确认网络上没有 其他主机使用DHCP服务器提供的IP地址,从而避免IP地址冲突。如果发现该IP已经被其他主机所使用(有其他主机应答此ARP解析请求),则DHCP 客户端则会广播发送(因为它仍然没有有效的IP地址)DHCPDECLINE消息给DHCP服务器拒绝此IP地址租约,然后重新发起DHCP DISCOVER进程。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。 如果 没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。至于其他TCP /IP选项,如DNS服务器和 WINS服务器等,本地手动配置将覆盖从DHCP服务器获得的值。被简化了的数据包结构:
Dmac:112233445566 Smac:aaaaaaaaaaaa Dip:255.255.255.255 Sip:1.1.1.1
< 5>IP租约的更新。 也可以说是续约,比如想继续组某家房产中介提供的房屋时。这里需要记住两个时间点,一个是租约长度的一半为T1,另一个是租约到达租约长度87.5%时为 T2。续约的时间是当DHCP客户机重启或者租期达到T1时。客户机直接向提供租约的服务器发送请求dhcprequest,要求更新现有的地址租约,延 长租期。如果dhcp服务器收到请求,它将发送dhcpack确认信息给客户机,更新客户机租约。如果客户机无法与提供租约的服务器取得联系,则客户机将 在T1与T2一半的时间再次发送给其权威DHCP服务器发送一个DHCPREQUEST。如果还是得不到其响应,客户机一直等到租器达到T2时,进入到一 种重新申请的状态,它向网络上的所有的服务器广播dhcprequest请求以更新现有的地址租约。如果收到来自服务器的响应,则客户端更新。如果租期过 了仍然没有收到服务器的没收到响应,客户机将无法使用现在的地址。 <6>IP租约的释放 使 用ipconfig/release命令使客户机向服务器发送DHCPRELEASE消息并释放其租约。注意,dhcp客户机在关闭时,并不调用 ipconfig /release,也就是释放租约。所以,如果客户机在租约时间内保持关闭,在租约到期后,dhcp服务器可能将客户机的ip地址分配给不同的客户机。
ping 和 ICMP
使用ping功能用启用ICMP #define STACK_USE_ICMP_SERVER // Ping query and response capability Internet控制信息协议(ICMP)在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,网关或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。 ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。 IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。上层协议必须使用自己的差错控制程序来判断通信是否正确。
网络端口
80 默认的HTTP端口 8080 HTTP备用端口,备用端口 This port is a popular alternative to port 80 for offering web services. “8080” was chosen since it is “two 80’s”, 抓取网络数据时时候协议显示HTTP Proxy 8008 http-alt 超文本传输协议(HTTP)的另一选择 http-alt 超文本传输协议(HTTP)的另一选择 8081 tproxy 透明代理 8090 this port is a somewhat less popular alternative to port 80 for offering web services 88 kerberos Kerberos 网络验证系统
其他一些概念
ARP
全称为Address Resolution Protocol,地址解析协议。所谓“地址解析”就是主机在发送数据包前将目标主机IP地址转换成目标主机MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 这时就涉及到一个问题,一个局域网中的电脑少则几台,多则上百台,这么多的电脑之间,如何能准确的记住对方电脑网卡的MAC地址,以便数据的发送呢?这就涉及到了另外一个概念,ARP缓存表。在局域网的任何一台主机中,都有一个ARP缓存表,该表中保存这网络中各个电脑的IP地址和MAC地址的对照关系。当这台主机向同局域网中另外的主机发送数据的时候,会根据ARP缓存表里的对应关系进行发送。 在局域网中,一台主机要和另一台主机进行通信,必须要知道目标主机的IP地址,但是最终负责在局域网中传送数据的网卡等物理设备是不识别IP地址的,只能识别其硬件地址即MAC地址。MAC地址是48位的,通常表示为12个16进制数,每2个16进制数之间用“-”或者冒号隔开,如:00-0B-2F-13-1A-11就是一个MAC地址。每一块网卡都有其全球唯一的MAC地址,网卡之间发送数据,只能根据对方网卡的MAC地址进行发送,这时就需要一个将高层数据包中的IP地址转换成低层MAC地址的协议,而这个重要的任务将由ARP协议完成。 ARP全称为Address Resolution Protocol,地址解析协议。所谓“地址解析”就是主机在发送数据包前将目标主机IP地址转换成目标主机MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 这时就涉及到一个问题,一个局域网中的电脑少则几台,多则上百台,这么多的电脑之间,如何能准确的记住对方电脑网卡的MAC地址,以便数据的发送呢?这就涉及到了另外一个概念,ARP缓存表。在局域网的任何一台主机中,都有一个ARP缓存表,该表中保存这网络中各个电脑的IP地址和MAC地址的对照关系。当这台主机向同局域网中另外的主机发送数据的时候,会根据ARP缓存表里的对应关系进行发送。
SNMP
简单网络管理协议(Simple Network Management Protocol SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为 SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。 SNMP被设计成与协议无关,所以它可以在 IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。
Zero configuration networking
Zero configuration networking (zeroconf), is a set of techniques that automatically creates a usable Internet Protocol (IP) network without manual operator intervention or special configuration servers. Zero configuration networking allows inexpert users to connect computers, networked printers, and other network devices and expect a functioning network to be established automatically. Without zeroconf, a user must either set up special services, like Dynamic Host Configuration Protocol (DHCP) and Domain Name System services (DNS), or set up each computer’s network settings manually, which may be difficult for non-technical or novice users. Zeroconf is built on three core technologies:
- Assignment of numeric network addresses for networked devices (link-local address autoconfiguration)
- Automatic resolution and distribution of computer hostnames (multicast DNS)
- Automatic location of network services, such as printing devices through DNS service discovery.
BERKELEY API
Windows套节字(嵌套字)API Windows Sockets API ↑ Windows嵌套字是由软件厂商和传输控制协议/因特网协议(TCP/IP)厂商(如Microsoft和Sun Microsystems)组成的一个工作组开发的,它是作为一种可以将市场上的基于PC的不一致性的TCP/IP产品连在一起的标准。这个规范也称为 Windows传输协议(Windows Transmit Protocol)。它允许Windows应用程序可以不论下面是什么协议都可以进行通信。这个规范是在1992年宣布的,后来对开发人员免费提供。它的 设计是为了保证任何联网厂商的TCP/IP软件,以及任何访问底层协议栈的Windows或Windows NT应用程序之间都具有互操作性。 已经出现了对Windows嵌套字的需求,这是因为许多厂商使用它们自己的应用程序编程接口(API)为PC环境开发TCP/IP协议栈。由于可以使用 许多不同的TCP/IPAPI,产品开发人员在他们的产品中就不得不选择一种API,或以很高的代价支持所有可用的API。Windows嵌套字是围绕著 名的Berkeley嵌套字来开发的,Berkeley嵌套字是由California大学(Berkeley)的Berkeley软件分发机构 (BSD)开发的。由于Windows是PC世界的一种主要的软件开发环境,因此有必要对它增加这种嵌套字扩展。 使用Windows嵌套字,在一个厂商的TCP/IP协议栈实现的应用将可以与其它厂商的协议栈一起工作。这就极大地简化了开发人员的工作,并促 进了软件的开发。Windows嵌套字承认Berkeley系统分发版本4.3,并且提供流类型、面向连接的TCP服务,以及用户数据报协议(UDP)的 数据报服务。
AES Advanced Encryption Standard in cryptography
AES Advanced Encryption Standard In cryptography, the Advanced Encryption Standard (AES) is a symmetric-key encryption standard adopted by the U.S. government.