.net 企业网站源码下载,手机网站开发c 教程,韩国设计app网站有哪些,公司网站建设厂家摘抄于大学期间记录在QQ空间的一篇自学笔记#xff0c;当前清理空间#xff0c;本来想直接删除掉的#xff0c;但是感觉有些舍不得#xff0c;因此先搬移过来。
曾经#xff0c;我只知道socket函数能进行网络间数据的通信#xff0c;知道tcp/ip协议也是用来进行网络数据…摘抄于大学期间记录在QQ空间的一篇自学笔记当前清理空间本来想直接删除掉的但是感觉有些舍不得因此先搬移过来。
曾经我只知道socket函数能进行网络间数据的通信知道tcp/ip协议也是用来进行网络数据之间通信的协议。而后开始接触了httpftpudpip还遇上了路由器我开始模糊了他们到底谁是网络的真正领导者他们又有何关系现在通过一本51cto技术论坛的文档我才算真正明白了什么是网络通信。
一、TCP/IP的层次结构 TCP/IP分为五成从上到下分别是应用层、传输层、internet层、网络接口层分别对应OSI结构中的应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 其中应用层包括的协议有Tclnet(远程登录协议)、ftp文件传输协议、http协议smtp邮件传输协议、DNS协议 传输层包括的协议有TCP和UDP协议 网络层包括的协议有IP协议以及ARP、RARP、IGMP 、ICMP 数据链路层的由逻辑链路子层和介质访问子层 物理层有SONET、SDH、PDH 原来这些协议相辅相成各施其职共同完成了网络间数据的传输他们谁也离不开谁就像我们人体的心脏大脑等工作在不同层次上共同组成了internet协议大家族。
二、IP协议TCP/IP协议族心脏 IP协议是internet协议族最重要的协议位于物理链路层之上的网络层向上层协议屏蔽了各种不同的物理链路的差别因此能将各种不同介质的网络互联起来。所有在internet上传输的数据以ip数据包格式传输ip提供不可靠、无连接的数据包传送服务即它不能保证ip数据包能否成功到达目的地。ip仅提供最好的传输服务。 ip协议的工作对象是数据包。ip协议在处理数据包时只会根据数据包本身的情况处理数据包不会考虑不同数据包之间的关系。因此对两个目的地相同的数据包的处理可能是不同的。其次ip协议的责任是将数据正确传递到目的地ip协议用能够表示和识别数据包的地址并能根据地址选择数据包传递的路径。 ip协议工作的对象是数据包对上层传递来的数据包进行封装ip地址结构如下
三、ARP协议IP地址与物理地址间的映射 由上可知要将一个ip数据包传送到目的地必须要有一只标识目的地的机制这种机制就是ip地址ip地址是一种结构化的二进制地址ip协议能够给通过该地址找到与该地址相关联的主机或网络设备。ip协议将上层数据包封装成ip数据包而ip数据包的实际传输是通过将其封装在屋里网络的数据帧中并让底层物理网络来传输改帧实现的。物理网络也有一个地址机制称为物理地址。物理网络就是通过这种物理地址来进行数据帧的发送和接收。这时出现了一个问题因为物理网络是无法识别ip地址的而ARP和RARP协议解决IP地址和物理地址间的映射问题。 在以太网络一种广播网络中即连接在同一个以太网中的任何主机都能接收到网络上发送的所有数据帧但主机会检查数据帧中的目的地址是否是自己否则将其丢弃。因此连接到网络的接口都有一对地址IP地址和物理地址以太网的物理地址也称MAC地址每块以太网卡出厂时都会有一个固定的全球唯一的MAC地址。 ARP协议使用一种询问/回答机制。主机H1要发送一个ip数据包给主机H4过程如下这时H1先构造一个ARP请求数据包该数据包中包含了ip地址P4并留下一个空位表示P4的MAC地址。H1的ARP协议将ARP数据包交给网卡让他将该ARP数据包作为广播帧发送出去。这样H1所在以太网中的所有网卡将会受到该数据帧并对其进行处理因为他们处于同一个广播帧。处于该广播帧的主机收到这个请求数据包后就将自己的IP地址与数据包中中包含的ip地址进行比较如果相同就表示对方在询问自己的MAC地址如果不是ARP协议会简单丢弃该数据包。因此只有H4会处理这个ARP请求数据包这时H4会将自己的MAC地址填在MAC地址空位上并将该数据包该数据包改为ARP响应数据包然后让网卡将其发送给主机H1。 对于不在同一广播帧中该过程略有不同需经过路由器才能将数据进行传输。ARP数据包格式 硬件类型字段对于以太网该字段为1 协议类型字段指明上层协议地址的类型对于IP协议该字段为0X0800 操作字段指明ARP数据包的类型ARP请求数据包类型为1ARP响应数据包的类型是2RARP请求数据包为3RARP响应数据包为4。
四、RARP协议反向地址解析-为物理地址分配IP地址作用 TCP/IP进行网络通信必须要有一个IP地址我们知道网卡的物理地址是固定在网卡上的而IP地址通常是保存在二级存储器中并在系统启动后载入系统的。因此启动之前是没有IP地址的RARP协议的出现解决了这个矛盾。RARP协议的实现分为客户端和服务端两部分需要远程启动的系统必须将RARP协议的客户端固化在硬件中如ROM而服务器端并不是所有的TCP/IP的实现都包含了RARP协议。 RARP协议的原理如下需要知道自己IP地址的计算机发送一个RARP请求数据包给RARP服务器服务器向该计算机发送一个RARP响应数据包响应数据包中包含了请求计算机的IP地址请求计算机在获得了自己IP地址之后就可以用它来与文件服务器通信获取自己的启动映像文件了。 RARP数据包格式与ARP数据包的格式相同RARP协议的工作过程如下请求计算机构造一个RARP请求数据包在该数据包中计算机将发送者硬件地址和目标硬件地址都设为自己的物理地址然后将该数据包广播到网络中网络中所有的计算机都能接收到该数据包但只有RARP服务器会处理RARP服务器将请求计算机的IP地址放入数据包的目标协议地址字段中并将数据包类型该位4响应然后将响应数据包发送给请求计算机。如果出现网络故障或RARP服务器失效时RARP请求将会失败。通常请求计算机对这种情况的处理是使用超时重发机制如果经过多次重发系统机会向用户报告一个错误。因此为保证服务器失效时计算机能正常启动通常在一个网络中放置多个RARP服务器但这样将造成网络流量的增多。
五、ICMP协议互联网控制消息协议 ICMP协议就是一种能让我们对网络进行调试的报错机制它能够让发现错误的路由器向数据包的源站发送一个出错消息来报告出错原因。ICMP的错误报告只能通知出错数据包的源主机而无法通知从源主机到出错路由途中的所有路由器。例如主机H1向H2发送一个IP数据包经过了RA和RB路由器到达RC路由器的时候RC发现无法将该数据包转发到H2。此时RC能知道数据包的源地址和目标地址但它无法知道该数据包途中经过了那些其他的路由器因此RC只能将出粗消息发送给数据包的源地址H1。 因为ICMP数据包封装在IP数据包中因此ICMP数据包即出错消息的传输也有可能出错这时就需要ICMP数据包产生另一个ICMP数据包因为这样加重了网络繁忙因此ICMP协议规定如果传输ICMP数据包的IP数据包出错不能为该数据包产生新的ICMP数据包。
六、路由器工作原理 路由器收到一个数据包时必须要能确定应该从哪个端口将该数据包转发出去。例如一个202.119.12.1网段的路由器接收到来自202.119.12.24的数据包假设路由器接入了一台主机IP地址为202.119.12.24者路由器必须知道将此数据包从连接到此主机的端口发送出去。如果接收到非12网段的数据包通常路由器是通过查找一张路由表来确定转发端口的在路由表中每一项都说明了通往一个目标地址应该通过哪个端口进行转发是直接转发给目的地还是需要通过下一个路由器再进行转发。因此一个基本的路由表的表项包含以下几个字段目的地址、下一站的地址、转发端口。 路由器的内部通过使用路由表进行数据转发的机制因此路由表是如何建立的呢第一种手段是路由器根据路由器各端口直接连接的网络自动产生一些路由表项即直接转发另一种就是通过路由协议的帮助如路由器RA必须要知道通往某个网络202.119.12..0/24必须经过路由器RB那么RA如何知道这一点呢方法只有一个就是RB告诉RA这一点RB就是通过路由协议将这条信息告诉了RARA知道后更新了路由表。