http://blog.csdn.net/goodboy1881/article/category/204448(乱入一下,关于tcp/ip这个网址总结的特别好)

1.网络层提供两种服务

一种是虚电路服务:源节点和目的节点建立连接,所有的数据包都要通过该连接进行传输;一种是数据报服务:两个节点之间无连接,数据报的传输路径不固定;

2.各层配套的协议是:

3.网络层通信的基本单位是ip数据报,且ip数据报可以分片;

4.ip地址格式

IP地址组成{网络号:主机号},网络号+主机号总共32位,其中,网络号和主机号的位数由具体的网络分类决定;ip地址大致分为A,B,C,D,E类;同一个局域网里的主机或者路由器的网络号是相同的;路由器连接不同的局域网,故路由器有>=2个的ip地址;

每种网络的范围:对于A类,网络号全0和全1都不要,B,C类全0不要;主机号不能全0;

5.路由器怎么转发数据报?

5.1路由表中内容:特定主机路由,网络前缀路由,缺省路由;匹配规则:1.如果目的地址是特定主机路由,就选这条路由;2.如果网络前缀和目的主机的网络前缀相同,就选这条路由,或者有多个网络前缀相同,选择网络前缀最长的;3.上述两条不符合,就选择缺省路由;4.如果前面几条都不行,就报目的主机不可达ICMP报文。具体转发流程如下

(1)由目的地址D得到该地址的网络地址N;

(2) 如果该网络地址N和路由器直接相连,那么可以直接交付,否则转到(3);

(3)如果目的地址D有对应的特定主机路由,那么交付到相应的下一跳路由器,否则转到(4);

(4)如果路由表中有网络地址N的路由项,那么交付到相应的下一跳路由器,否则转到(5);

(5)如果路由表中有缺省路由的路由项,那转到该缺项路由的吓一跳地址,否则转到(6);

(6)报告目的地址D不可达,发送ICMP差错报文;

6.ARP工作原理

6.1 ARP高速缓存:每个主机中都存在一个ARP高速缓存,其缓存了本局域网内各主机和路由器ip地址到mac地址的映射;当主机A向主机B发送分组,首先查找主机A的ARP缓存,如果有主机B ip地址到mac地址的映射,封装ip数据报,加上mac地址后进行传输;

如果A,B在同一个网段里;

如果主机A中没有B的ip地址到mac地址的映射,A会以广播形式发送一个ARP请求报文,报文里给出A自己的ip和mac地址,以及B的ip地址,问ip地址对应的mac地址是谁?B接收到以后发现目的ip地址跟自己的ip地址相同,就向A一对一的发送ARP响应报文,报告自己的mac地址,A将B的IP地址和mac地址存储到自己的ARP高速缓存中。

如果A,B不在同一个网端;

首先说一下网关:其实就是一个网络联向其他网络的地址,是一个逻辑概念,如果没有该IP地址,两个局域网是不能连通的,现在网关一般通过路由器都能实现,也就是路由器的IP地址是网关;(1)如果主机A发现主机B的ip地址的网络号和自己不同,知道不是在同一个网端内,就应该将该分组发送给网关,如果不知道网关的的IP地址会先发送获得该网关mac地址的ARP请求报文。(2)如果知道网关的mac地址,将分组发给该网关后,网关在确定发送给谁;

7.划分子网

7.1为什么要划分子网?

为了提高ip地址利用率,比如A类地址,每个网络号有很多个主机,如果路由表中只存储网络号,那么在该网络号的所有分组都要通过该路由器进行转发,不够详细。故可以将主机号划分成 子网号:主机号;其中子网的网络地址可以通过ip地址和子网掩码相与得到;A,B,C类的默认子网掩码分别是255.0.0.0,255.255.0.0,255.255.255.0;例如

192.225.225.128/30,子网掩码是30位,该子网下的主机数只有2个;还有CIDR地址块,其IP地址构成是    网络前缀+主机数/网络前缀位数;通过路由器的路由表查找时,根据最长匹配前缀进行;

8.路由器中的路由表是怎么得来的?现在要说说这个问题

主要有两种算法,第一种是距离向量算法(distance-vector,d-v),另外一种是链路状态算法;其中基于距离向量算法的协议是RIP,下面先详细讲一下RIP协议。

首先RIP协议中路由器的路由表中项目:目的地址,下一条路由器,距离(此处是路由器的跳数,即到达该目的地址需要经过多少个路由器,如果>15,该目的地址不可达)。该协议主要通过路由器交换彼此的信息从而达到知道所有目的地址路径,其中需要知道路由器都是和谁交换信息?交换什么信息?什么时候交换信息?

(1)路由器和邻居交换信息,也就是不通过其他路由器直接相连的路由器;

(2)彼此交换自己所有信息;

(3)每隔一定时间就交换信息;

距离向量算法基于bella—ford算法,更新的目的是保证路由器到目的地址的路径最短,即经过的路由器个数最少,而不管是否时间效率上最好;下面是一个例子:

(1)路由器X向邻居发送自己的所有路由信息,

(2)将X发送过来的每条路由信息改成     下一跳地址X,距离加1后是d,目的地址不变,然后将这些信息和本路由器的路由信息比较;

a.如果本路由器中没有该目的地址的信息,就将该条信息加入;

b.如果本路由器中有该目的地址的信息,比较下一跳,如果下一跳都是X,更新到达目的地址的距离为d,如果原来的下一跳不是X,比较到达目的地址的距离,如果d比较    小,更新原来到目的地址的距离为d,否则不变;

c。如果3分钟后邻居还没有发送他的路由信息,标记邻居不可达,距离改成16;

RIP允许距离最大只能是15,所以RIP一般只用于小型的网络,且如果有个目的地址不可达,只有等够一定的时间才会发送给邻居,接着邻居会向他的邻居发送,简而言之就是好消息传播的快,坏消息传播的慢;

下面说关于链路状态算法,OSPF协议使用该算法。

与RIP不同,OSPF测试邻居的连通性,并把测试结果告诉相邻的其他路由器,。。。就这样信息被传播开;

计算机网络基础代码,计算机网络基础知识(示例代码)相关推荐

  1. C#dataGridView 知识(示例代码)以及相关的经验技巧

    一.单元格内容的操作 // 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Conso ...

  2. html风车相册代码,Css Html 大风车(示例代码)

    简介这篇文章主要介绍了Css Html 大风车(示例代码)以及相关的经验技巧,文章约3675字,浏览量138,点赞数2,值得参考! div{ border-radius: 50%;position: ...

  3. linux mv编写代码,Linux命令--mv(示例代码)

    简介这篇文章主要介绍了Linux命令--mv(示例代码)以及相关的经验技巧,文章约4069字,浏览量253,点赞数7,值得推荐! Linux--mv mv经常被用来做备份 命令参数: -b :若需覆盖 ...

  4. ABOV单片机内部中断优先级寄存器IP1x/IPx的设置代码实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.外部中断EINT示例代码-MC96F6332D 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.代码部分 1.现代单片机MC96F ...

  5. java入门基础知识示例代码

    本次更新给大家带来java的入门基础知识相关学习代码 模块一:java程序里的数据书写格式 package com.jiawei.literal;public class LiteralDemo {p ...

  6. 学计算机基础代码,计算机科学基础知识(示例代码)

    1. 计算机科学基础知识 1.1 数制及其转换 二进制.八进制.十进制和十六进制等常用数制及其相互转换 1.2 计算机内数据的表示 数的表示(原码.反码.补码.移码表示,整数和实数的表示,精度和溢出) ...

  7. 计算机硬件及相关设备基础知识,计算机硬件——基础知识(示例代码)

    计算机硬件--基础知识 1.编程语言的作用 语言是用来沟通的,如英语.法语.葡萄牙语等.程序员编程的本质就是让计算机去工作,而编程语言就是程序员与计算机沟通的介质. 2.操作系统和硬件的关系 操作系统 ...

  8. 基础计算机知识代码,计算机基础知识(示例代码)

    计算机的基本组成:硬件.操作系统.软件.网络四部分组成. 为何要学习计算机基础:Python跟其他语言一样也是一门编程语言,即python是语言.学习python语言之所以要求掌握计算机基础只是因为p ...

  9. [基础]Javascript中的继承示例代码

    面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承( ...

最新文章

  1. 探讨ASP.NET 2.0中的Web控件改进技术(3)
  2. 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法...
  3. Centos7 关闭防火墙(转)
  4. 分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!
  5. BZOJ - 3578: GTY的人类基因组计划2
  6. class unity 定义类_Unity 游戏框架搭建 2019 (二十五) 类的第一个作用 与 Obselete 属性...
  7. 怎样将两个html页面合并,如何把WORD的两个页面合并在一起?
  8. 交错字符串Python解法
  9. 灵活、高效、智慧,宁畅发布新品及“智定+”战略
  10. mysql server_id作用_MySQL复制过程中server-id的理解
  11. android不能在主线程,android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问(示例代码)...
  12. post方法就返回了一个string字符串前台怎么接_LoadRunner脚本编写教程Getamp;Post
  13. 数据结构折半查找例题_山东2011专升本计算机专业数据结构练习题 - 图文
  14. 【.bash_profile 与 .bashrc 的区别】
  15. Echarts单条折线可拖拽
  16. socket套接字选项列表
  17. oracle 导入时出现两个,Oracle的导入及两个错误
  18. CCS6.0安装教程
  19. ansys静态结构分析
  20. 牛客面经 | BAT、美团、360、滴滴新锐……2W字干货,这不仅仅是一篇面经

热门文章

  1. matlab相机标定畸变参数,相机标定的原理与意义及OpenCVMatlab实现差异小结.doc
  2. 初学者python笔记(函数)
  3. 1000道Python题库系列分享
  4. Python生成器函数案例一则:理财收益计算
  5. Python可以这样学(第五季:Socket编程)-董付国-专题视频课程
  6. 基于Python+tkinter+pygame的音乐播放器完整源码
  7. CSDN博客排名20000以后的用户怎么查询具体排名
  8. netty channelinactive触发条件_Netty的Future和Promise
  9. python数据预测案例_Python数据分析及可视化实例之疾病预测(分类)
  10. idea中下载插件超时_完美解决idea无法搜索下载插件的问题