1.MAC(Media Access Control,介质访问控制)html
是解决底层数据通讯冲突的解决方案。所以,给每个接入这样网络的主机一个id标示符,这个id标示符就叫作MAC地址。nginx
2.CSMA/CD(Carrier Sense Multipath Access Collision Detection,载波侦听多路访问冲突检测),线型网络程序员
以太网Ethernet最核心的标志。web
3.Token-Ring(IBM)技术sql
环形网络解决冲突的方案。可是因为IBM的专利限制没能推广开来。编程
4.星形网络ubuntu
用Hub来链接好多主机,这样就造成了星形网络。windows
这是一种变形的总线结构。仍是一根线,只不过不是一根线,而是一个设备,但实际上Hub内部仍是一根线,并且Hub搞出了好多接口,这样就能够方便添加主机了。它逻辑上仍是总线型网络。服务器
5.网桥网络
能够粗略理解成一个中继器,用来放大信号什么的。
网桥是链接两个网络的一个设备。当一个局域网的设备太多的时候冲突就会特别容易发生,利用MAC来处理的话,通讯的效率会大大降低,因此网桥就产生啦!就好像一个家里的人多了同样,须要分家了,可是他们之间仍是要通讯的。因此就将一个大的局域网分红几个小的网络,这几个小的网络之间利用网桥链接。注意区别于Internet。
网桥内部有一个表table,能够用来判断发过来的数据包是否是发送给这个小的网络的,要是就是发送给这个小的网络的话那么就不须要网桥的转发。
6.交换机
网桥的将一个大网切换成两个小网,那么发生碰撞的可能性就下降了一半。
取一个极限的状况就是:网桥的一个出口只有一个主机。----->这个设备就是交换机!!
交换机最核心的就是其内部的那张表!
交换机隔离的不是广播,它隔离的是冲突。在一个小网的内部又能够叫作冲突域。
7.链接层的硬件设备
Hub集线器 --> 网桥 --> Switch交换机
8.IP地址存在的缘由
交换机隔离的不是广播,它隔离的是冲突。因此,用再多的交换机都不能解决广播风暴(太多的广播)的问题,因此就产生了一个交换机所在的一个小网的总的地址,咱们将它叫作逻辑地址(他是模拟的,他是用来标识交换网络的),又将它叫作IP地址。
MAC地址的工做机制就是用来实现广播的!因此要用逻辑地址(IP地址)来进行更好的转发。(NOTE:这彷佛有是一个寻求合适粒度的问题)
IP只有一个简单的做用:他是用来在网络之间转发报文的。他也只是用来识别是本地网络仍是远程网络的。
IP地址与MAC地址在数据包转发过程当中的变化
IP地址一直不变,而MAC地址一直变化(由于MAC地址是不能跨网络的)
9.ARP(Address Resolution Protocol)
地址解析协议。将IP地址解析成MAC地址。
MAC地址是一个信封,IP能够当作是信的开头。发送(转发)的过程当中要不断的换信封,可是信的开头不能换。
10.MAC存在的必要性
IP地址是用来寻找到在一个网络中,最终仍是要靠MAC来广播。MAC是用来标记本地通讯的,他不断传,不断变化,由于它MAC就只在本地网络中实现自身价值,不在这个小网络中它就要变化啦。
11.路由自动学习产生路由表
RIP协议、RIP2
12.默认网关?????
能够理解成交换机与路由器之间的接口。
13.端口号
每一台主机的可用端口是:0-65535
对于客户端,随机使用一个没有被使用的接口就行。而服务器端就不会,一个端口后面有一个进程在监听。
http://www.cnblogs.com/chenbuer/p/3842281.html
14.IP地址
主机位全0:网络地址
主机位全1:广播地址
ICANN,就是跟它买IP地址
15.路由表
一个路由条目中,当目标地址是一个主机咱们成为主机路由,目标地址是一个网络的时候就是网络路由。在路由的时候选择是最佳匹配。
路由汇聚,是将不少小的子网合并成一个大的网络,这样就能够提升路由器性能减小寻找到要找的那个路由条目的时间。
16.配置文件
系统在启动的时候会读取配置文件。
17.IP属于内核,不属于网卡。
18.Linux中的网卡,对于Linux来讲,每个网络接口都有一个名称:
lo:本地回环
以太网卡:ethX
pppX点对点的
在ubuntu中他的名字是在 /etc/udev/70-persistent-net.rules 中被定义
19. ifconfig
显示处于活动状态的网卡的信息
-a
ifconfig ehtX IP/mask 设置特定网络接口的IP和掩码,当即生效,可是不会永久生效
ifconfig ethX [up/down] 启用或者关闭特定的网络接口
20. 在unbuntu中用 /etc/init.d/networking 来配置网络服务
网络配置文件 /etc/sysconfig/network (这儿不是在ubuntu中的,是在redhat中的)
网络接口配置文件 /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME (这儿不是在ubuntu中的,是在redhat中的)
21.route命令,查看本地路由表
-n 以数字方式显示主机或端口等相关信息
add 添加路由
-host:主机路由
-net:网络路由
-net 0.0.0.0默认的
route add -net(-host) gw NEXTHOP
del 删除
-host
-net
22. DHCP(Dynamic Host Configuration Porotol,动态主机配置协议)
http://www.cnblogs.com/LittleHann/p/3705263.html
注意:IP地址是配置在操做系统上的。
DHCP服务器上有一堆IP地址能够分配给申请IP地址的主机,这样的一个表叫作地址池。当主机一关机,IP就释放回收。他有一个lease租约,当时间快到了就要在租约到来以前要续租。
广播方式请求IP地址。个人mac只是*****,谁能够给我提供一个IP地址。服务器收到后仍是广播回去(由于此时主机仍是没有IP地址,只有mac地址,没有IP地址那就只能广播啦)。主机肯定用哪个IP地址的时候还须要广播通知用谁的地址。
DHCPDISCOVER 广播,请求
DHCPOFFER 广播,提供IP报文
DHCPREQUEST 广播,告诉选择哪个IP地址
DHCPACK 广播,提供IP的服务器确认
DHCP是不能跨网络提供服务的。
23.tcp/ip配置的时候须要的参数
IPADDR
NETMASK
GATEWAY 这个可有能够没有,没有大不了就是不跟外网联系了。
DNS 能够有,能够没有
24.NFS(Network file system,网络文件系统)
文件系统是工做在内核空间的,包括NFS,ext3。
概念讲解:在一个网络中,主机A中有一个未被挂载的设备(好比说一个分区),经过网络,咱们将它挂载在另外一个主机B上,当咱们在网B上相应的目录写入数据的时候就经过网络写入在主机A中本地的设备。因此主机B就像访问本机主机同样访问远程主机A上的设备。
LPC(Local Process Call),本地过程调用
RPC(Remote Process Call),远程过程调用。stub(存根)能够当作是客户端的RPC程序,服务器端的程序是rpc server,对于Linux而言,提供rcp服务的程序叫作Portmap(就行web和httpd、nginx之间的关系),监听在111/tcp和111/udp
RPC是一种编程技术,是一个协议,简化分布式应用程序的开发,他让两个主机看上去就像一个主机,这样程序员在分布式开发的时候就不用进行网络数据的分装了。用它进行数据交换既能够基于二进制,又能够基于文本格式(xml rpc)。发展到后来,有了SOAP(Simple Object Access Protocol,简单对象访问协议),他是一种轻量级的xml rpc。
ftp、http、rpc都是实现数据交换,之间有不少相同的东西。
NFS不是一个服务,而是一个文件系统,它在网络工做才能成为NFS,他是基于RPC协议进行的,RPC是基础,NFS基于RPC工做。
NFS因为是用户认证很薄弱,因此咱们只能在内网上通讯,通常只能UNIX和Linux之间,不能与windows通讯。windows用网上邻居进行通讯。
25.LAMP(Linux+Apache+Mysql/MariaDB+PHP/Python一组成用来搭建动态网站或者服务器的开源软件),他们自己都是各自独立的程序,但由于京城放在一块儿使用,共同组成了一个强大的Web应用程序平台。从网站的流量上来讲,70%以上的访问流量是LAMP来提供的。LAMP是最强大的网站解决方案。
26.iptables & netfilter
Linux下面的网络防火墙。
netfilter是真正起到防火墙做用的框架(Frame),工做在内核中,能够放入规则。iptables,数据报文过滤,是NAT、mangle等规则生成的工具,工做在用于空间,他是一个规则生成器,是一个APP,能够写规则,并放入内核中。
防火墙?主要目的就是工做在主机边缘,对进出主机的数据报文进行检测,将数据与规则(匹配标准、处理办法)标准进行检查,这样的一组组件(硬件或者软件)叫作防火墙,有网络防火墙和主机防火墙。对于网络防火墙,对于网络内部的数据包是不能检测的,家贼难防。因此防火墙是一个框架Framework。因此防火墙说白了就是数据报文过滤。
内核中有一个TCP/IP协议栈,网络数据从网卡进来就要进入这个内核的协议栈。根据路由表(路由决策),在协议栈中咱们检查目标ip是否是本机的ip,是的话就送入目标进程,不是的话就转发出去,在/proc/sys/net/ipv4/ip_forward中修改本机是否开放转发功能。路由决策发生在,经过网卡以后,进入TCP/IP功能上,就当即进行路由决策。
hook function:钩子函数。共有prerouting,input,output,forward,postrouting。
因此内核上有五个链PREROUTING,INPUT,OUTPUT,FORWARD,POSTROUTING
链是什么?
netfilter就是工做在TCP/IP协议栈上的hook。
filter(过滤),表
NAT,在PREROUTING、POSTROUTING进行。表
mangle(拆开、修改、封装),表
raw
数据包过滤匹配流程
图片来自http://www.2cto.com/Article/201307/224402.html
每一个链上的功能table都是有优先级次序的,上面的图就显示了这样的次序。
可否使用自定义的链?可使用自定义链,但只在被调用时候才能发挥做用,并且若是没有滴定义链中的任何匹配规则,还应该有返回机制。用户能够删除自定义的空链,默认链没法删除。
iptables的命令能够参考http://www.cnblogs.com/wangkangluo1/archive/2012/04/19/2457072.html
27.ICMP(Internet Control Message Protocol,Internet控制报文协议)
端口号0~65535,其中0~1023之间的端口只有管理员可使用,大于5000客户端可使用。
28.TCP协议中的几个装套标志很重要:ACK、SYN、FIN
http://www.cnblogs.com/vamei/archive/2012/12/16/2812188.html
其中ACK标志Acknowlegment number是否有用,而SYN表示位是用来标识这个包是client端用来请求链接server或者server链接client,而FIN是用来标识结束的四次握手断开时候用的。
29.TCP的状态转换能够参考
http://www.cnblogs.com/keepsimple/archive/2013/04/28/3049044.html
(上图中虚线表示server状态转换,实现表示client状态转换)在四次握手的时候client发送了FIN,等待server发送ACK,此时是WAIT1状态,一旦收到server收到ACK,进入WAIT2状态,server发送了ACK以后,client不能当即进入CLOSE,而是要进入TIME WAIT。