##计算机网络(tcpip)面试笔试考研应用实践

https://note.youdao.com/share... 含图解html


看到拥塞控制和差错控制。c++

资料面试

计算机网络(谢希仁)第五版课件.ppt ,章节一层没有目录,可做为以上资料的辅助资料。
再看不懂就作题辅助理解和记忆。
       牛客网上没有答案的题目能够:
    http://www.ppkao.com/   搜索题目的答案和解析
    
    不在面经里的题目属于超纲 没必要看

文本资料(考研书、知乎)
天勤计算机网络高分笔记(偏口语化,适合转专业和跟面试官聊天)
王道计算机网络高分笔记 适合本专业
计算机网络高分笔记 - 扫描版.pdf
18.6MB
第一章非扫描版:
计算机网络高分笔记(打印版) - 第一章.pdf
2.7MB
计算机网络面试(tcpip)笔试必考与实践总结算法

https://www.nowcoder.com/disc... 计算机网络部分的面试常考点 牛客网编程

怎么写教学PPT:
主要内容
学习目标:了解 理解 掌握segmentfault

考试技巧 -感悟:以此次复习《TCPIP网络编程技术.pdf》为例大部分都不是重点能够粗略带过,一章里主要有那么几句话是重点。 这个结合别人的考试重点能够看出来,再进一步的看先后PPT来理解这些考点。centos

经过教材 再把本身积累的一些其余应用知识串起来。浏览器

单独看PPT中的某一段看不懂,必须从头至尾联起来看,反复推敲。缓存

仍是由于计算机网络的理论学得不够扎实,网友的笔记没法辨别它们本身理解错的地方。
因此命令使用理解起来费劲。安全

本文档使用说明
一、从每小节(##标志)下的次级小标题中能够知道《TCPIP网络编程技术.pdf》(附连接)必定有的内容,进而能够决定是否须要打开《TCPIP网络编程技术.pdf》进行进一步查阅。
二、第1章到第N章/每小节(##标志)下的/ 次级小标题下 /列出的内容 /为笔试面试必考。
三、第2章IP地址的实践笔记(内网IP、公网IP)后
arp、ping(基于ICMP)命令的实践笔记,补充:《计算机网络学习笔记1-网络命令详解ping、arp、ipconfig、tracert、route详解https://segmentfault.com/a/11...
四、第7章套接字编程后有 Java TCP/IP Socket编程

网络体系结构、OSI分层、TCPIP协议簇 。 第一章 计算机网络基础

一、网络体系结构的关键要素是协议和拓扑结构。
五、网络应用程序通常是以客户机/服务器模型( Client/Server, C/S)工做。
四、了解其与OSI参考模型之间的关系。

网络层也称IP层。
二、OSI分层 (7层):物理层、数据链路层、网络层(也称IP层)、传输层、会话层、表示层、应用层。
三、掌握TCP/IP协议族的结构,理解其工做原理。
TCP/IP(协议簇)(4层):网络接口层、 网际层、运输层、 应用层。
TCP/IP(协议簇)五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
每一层的做用以下:
物理层:经过媒介传输比特,肯定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧,提供相邻两个端点之间的(相邻的点到点,点不仅是是主机,还包括其余设备)(帧Frame)
网络层:它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,将数据组装成包,将包设法从信源通过若干个中间节点传送到目的设备(信宿)上,点到点通讯。(包PackeT)
传输层:提供的就是应用程序间的通讯。提供端到端(端指的是端口)的可靠报文传递和错误恢复(段Segment)
会话层:创建、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:提供一组经常使用的应用程序。容许访问OSI环境的手段(应用协议数据单元APDU)

以上可能有错。
封装复用思想。 下层向上层提供服务,上层封装下层的数据结构

各层之间如何相互做用(数据传输从应用层到链路层有哪些变化)?

在浏览器中输入www.baidu.com后执行的所有过程
主要是分析TCP/IP各协议层的变化。
一、从应用层到传输层到网络层: 客户端浏览器 经过DNS 解析到www.baidu.com的IP地址220.181.27.48,经过这个IP地址找到客户端到服务器220.161.27.48的路径。客户端浏览器发起一个HTTP会话到220.161.27.48 服务器,而后经过TCP进行封装数据包,输入到网络层。
二、在客户端的传输层发送报文段Segment,把HTTP会话请求分红报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。而后使用IP层的IP地址查找目的端。
三、网络层发送包Packet,客户端的网络层不用关心应用层或者传输层的东西,主要作的是经过查找路由表肯定如何到达服务器的路径,期间可能通过多个路由器。
四、客户端的链路层,包经过链路层发送到路由器,经过邻居协议查找给定IP地址的MAC地址,而后发送ARP请求查找目的地址,若是获得回应后就可使用ARP的请求应答交换的IP数据包如今就能够传输了,而后发送IP数据包到达服务器的地址。 (感受有错)
先这样记吧,不过 ARP、RARP、IP、ICMP都是网际层的协议。
更多答案:https://www.nowcoder.com/ta/review-network/review?tpId=33&tqId=21195&query=&asc=true&order=&page=7

1八、计算机网络中不一样层有用到哪些协议?

物理层:物理层定义的是规范,不能说是协议,规范有:RJ4五、EIA/TIA(机构名) RS-23二、CLOCK、IEEE802.3 (中继器,集线器,网关)
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器) 网络层封装了上一层,因此路由器应该也能够算在上一层之间
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII 数据的压缩 和编码
应用层:超文本传输协议( HTTP),简单网络管理协议( SNMP),文件传输协议( FTP),简单邮件传输协议( SMTP),域名系统( DNS),远程登陆协议( Telnet)

第2章 IP地址

一、掌握IPv4地址的分类和寻址规则。
IP地址的分类(IPv4地址分为A、B、C、D、E五类,出去特殊做用的D、E两类,剩下的A、B、C三类地址是咱们常见的IP地址段。)(具体见PPT)
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
二、IPv4地址的【实践】经验补充,内网IP、公网IP:

A类地址的容量最大,能够容纳16777214个主机,B类地址能够容纳65534个主机,C类地址能够容纳254个主机。 在这三类地址中,绝大多数的IP地址都是公有地址(=外网IP=外部IP),须要向国际互联网信息中心申请注册。可是在IPv4地址协议中预留了3个IP地址段,做为私有地址(保留地址=内网IP=内部IP),供组织机构内部使用。 这三个地址段分别位于A、B、C三类地址内: 
A类地址:10.0.0.0–10.255.255.255 
    B类地址:172.16.0.0–172.31.255.255 
    C类地址:192.168.0.0–192.168.255.255 
因此局域网在选取使用私有地址时,通常会按照实际须要容纳的主机数来选择私有地址段。常见的局域网因为容量小,通常选择C类的192.168.0.0做为地址段使用,因此大多数局域网选择192.168.0.0/24或者192.168.1.0/24做为本身的IP地址段 ,一些大型企业就须要使用B类甚至A类地址段做为内部网络的地址段。 
公网地址不一样,内网IP可能同样。
利用 curl ifconfig.me 查询外部IP、查询外网IP。
最后须要补充说明的是,因为NAT和子网掩码的存在,实际在使用中,一个C类大小的局域网也能够选择A类的10.0.0.0网段做为本身的IP地址段。大多数局域网之因此仍然选择192.168.0.0/24或者192.168.1.0/24做为本身的IP地址段,更多的是由于约定成俗或者说网管我的习惯的关系。

子网局域网的广播地址一般以255结尾

三、子网、超网,进而掌握掩码的概念及其配置方法。

IP地址 = 网络地址 + 主机地址。

IP地址与子网掩码相与获得子网地址

四、地址解析的概念,ARP和RARP(反向地址解析协议),了解它们的数据报格式,了解代理ARP的
概念。

ARP是地址解析协议是根据给定的IP地址获取对应的物理地址,简单语言解释一下工做原理。

主机A将询问“ip对应的mac地址是多少”广播到网络内,正确的主机单播返回结果。广播发送ARP请求,单播发送ARP响应。
1:首先,每一个主机都会在本身的ARP缓冲区中创建一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,若是有,则直接发送数据,若是没有,就向本网段的全部主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址。
3:当本网络的全部主机收到该ARP数据包时,首先检查数据包中的IP地址是不是本身的IP地址,若是不是,则忽略该数据包,若是是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,若是已经存在,则覆盖,而后将本身的MAC地址写入ARP响应包中,告诉源主机本身是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。若是源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
五、 【实践笔记】arp命令的应用

经常使用参数

-a 用于查看全部网络接口缓存(本身的ARP缓冲区中创建一个ARP列表)中的项目。本地局域网中的全部已经加入缓存的与本机通讯的计算机IP地址。包括IP地址mac地址和类型 例:c:>arp -a

-a ip 用于查看指定目的ip缓存中的项目。例:c:>arp -a 160.219.0.3
-d 用于清除全部网络接口的arp缓存。例:c:>arp -d
-d ip 用于清除指定目的IP的arp缓存。例:c:>arp -d 160.219.0.3
-s 增长一条静态arp项。例:c:>arp -s 157.55.85.212 00-aa-00-62-c6-09
以上仅为arp命令的经常使用参数更多参数能够输入apr /?查看

意思是每次A机使用ping命令ping一个IP, 这个IP和对应的mac就会加入到A机的ARP缓存表中。**

第3章 网际协议(Internet Protocol,IP)

第3章 网际协议.pptx
1.09MB
•理解IP的概念、做用以及在TCP/IP协议族中的位置。

网际协议( Internet Protocol, IP)做为TCP/IP协议族中的核心协议,提供了网络数据传送的最基本服务,同时也是实现网络互连的基本协议。特色:点对点(这里的点是主机、手机登终端的意思),不可靠,无链接。
无链接, 不会一直链接。

•掌握IP数据报格式的构成,了解IP数据报选项的做用。

IP数据报分片与重组
•熟悉IPv6的地址结构、数据报格式以及从IPv4过渡到IPv6的经常使用方法。
•理解移动IP的工做原理,熟悉与移动IP相关的重要概念。

第4章 网际控制报文协议(ICMP)

一、理解ICMP的概念和做用。

由上一章可知,网际协议IP是一种不可靠的,无链接的数据报传输协议,提供了一种尽力而为的点到点数据传输服务,但

不能保证全部数据报均可以成功地从信源到达信宿(不可靠)。为此人们在网络层(也称为IP层)引入了另一种协议——网际控制报文协议( InternetControl Message Protocol, ICMP)ICMP是IP的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。
二、掌握ICMP报文的格式和各类报文类型的做用。

ICMP报文分为两大类,即ICMP差错报告报文和ICMP查询报告报文。

三、了解ICMP报文的封装过程。
四、实例分析
五、Ping实用程序(实践)
ping 命令后,返回各参数的意义?

Ping程序用来测试两台主机之间在IP层(网络层)是否联通的工具。它使用ICMP回应请求和回应应答报告来测试信宿是否可达。基本语法 ping 目标IP地址 。
一、“ping一下某机器,看是否是开着”
个人理解:约等于查看某个ip的机子是否是在线(非关机且连入局域网状态),固然也有其余缘由致使它ping不通:防火墙因素。另外有些服务器为了防止经过ping探测到,经过防火墙设置了禁止ping或者在内核参数中禁止ping,这样就不能经过ping肯定该主机是否还处于开启状态。

防火墙技术

centos/RH 6.x  对应的防火墙技术:
service iptable status
centos/RH 7.x 对应的防火墙技术:
firewall-cmd --state
:

你知道咱们二部的服务器用的是iptables仍是farewell吗
:
咱们服务器通常都没配防火墙吧
:
外网那台 我不知道
我:
我说我怎么按常规方法啥也查不到

二、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。

常见路由器的网关默认 IP 都是 192.168.1.1。

三、不能ping通本机ip地址 127.0.0.1 说明了什么?

测试Windows主机IP软件安装是否正确,使用Ping 127.0.0.1。

四、ping广播地址

查看网段内在线的ip。

五、怎么ping外网?

ping www.baidu.com

因此使用用ping命令检测网络故障的典型次序为:
① ping 127.0.0.1:该命令被送到本地计算机而不会离开本机,若是没有收到应答包,就表示TCP/IP的安装或运行存在某些最基本的问题。
② ping 本机IP:该命令多用于手工配置IP地址的局域网用户,用户计算机始终都应该对该命令作出应答,若是没有收到应答,局域网用户应断开网络电缆,而后从新发送此命令,若是运行正确,则有多是网络中有另外一台计算机配置了相同的IP地址。若仍然有错,则表示本地配置或安装有问题。
③ ping 局域网内其它IP:该命令离开用户计算机,通过网卡和网络电缆到达其余计算机,再返回。收到应答代表本地网络的网卡和载体运行正确。若没有收到应答,则多是子网掩码错误、网卡配置错误、或网络电缆不通。
同一个局域网内其它ip均可以被ping通吗?
④ ping 网关IP:若错误,表示网关地址错、或网关未启动,或到网关的线路不通。 常见路由器的网关默认 IP 都是192.168.1.1。
怎样查看本身的网关?
⑤ ping 远程IP:若收到应答,表示网关运行正常,能够成功访问Internet。
⑥ ping localhost:localhost是127.0.0.1的别名,是操做系统的网络保留名,系统应该可以将该名字转换成该地址。若是有问题,则表示主机文件(/Windows/host)中存在问题。
⑦ ping 域名:执行此命令时,计算机会先将域名转换为IP地址,通常是经过DNS服务器。若是有问题,则可能DNS服务器地址配置错误或DNS服务器故障。该功能还可用于查看域名对应的IP地址。
若是以上全部ping命令都能正常运行,一般说明用户计算机进行本地和远程通讯的功能基本具有。
特别说明:ping不成功不意味着网络必定有问题,有些路由器和防火墙设置了过滤ping数据包的功能,所以当收不到返回包时,不必定说明网络有错。一样,ping命令的成功也不表示全部的网络配置都没有问题,例如,某些子网掩码错误就可能没法用这些方法检测到。

TCPIP网络编程技术.pdf 第五章 IP路由 导读

一、理解IP路由的概念和路由表做用

经过路由器将数据从一个网络传输到另外一个网络称之为路由。


信息从信源向信宿(目的地)传输,信源和信宿分别在不一样网络时,信息须要通过一些中间环节(间接传递)才能传递到信宿的过程,这些中间环节通常是由一系列路由器组成。路由器放置在网络与网络之间。

二、路由选择算法
距离向量路由算法考试例题(P101 、P102):

(b)度量值:A到信宿的距离
链路状态路由算法考试例题(P108):

三、路由选择协议

为了简化路由,因特网将整个互联网划分为若干相互独立部分的集合。这些独立部分的集合经过统一的路由策略或路由协议相互交换信息,造成一个相对独立的网络,称之为自治系统( Autonomous System, AS)= 路由选择域,自治系统内部路由选择又称为域内路由选择,而自治系统之间的路由选择又称为域间路由选择。

(1)内部网关协议IGP(Interior Gateway Protocol),即在一个自治系统内部使用的路由选择协议(域内路由选择协议)。有:

a、路由信息协议(Routing Information Protocol,RIP)是基于距离向量路由算法( Bellman-Ford算法)。
    b、开放最短路径优先协议 (Open Shortest Path First, OSPF) 是基于链路状态路由选择算法( Dijkstra算法)( Shortest Path First,SPF)。

(2)外部网关协议EGP(External Gateway Protocol),即自治系统之间使用的路由选择协议(=域间路由选择协议)。

P148 边界网关协议( BGP)是域间路由选择协议,经过自治系统边界路由器在自治系统之间交换路由信息,同时确保无环路。

四、补充:网关

网关:局域网内 转发数据任务 的承担者。       

对于普通用户而言, 一般局域网的网关(计算机的默认网关地址) = 路由器的IP = 路由器LAN接口的IP = 路由器的管理页面登录地址

当你所在的局域网的计算机须要和其它局域网中的计算机,或者须要访问互联网的时候,你所在局域网的计算机会先把数据包传输到网关(路由器的LAN接口),而后再由网关进行转发。
这就是为何咱们在有路由器上网的时候,必需要把计算机中的默认网关地址设置成路由器LAN接口的地址的缘由,由于路由器的LAN接口就是你所在网络的网关,你的电脑要上网,数据包必需要通过网关转发出去。目前家用路由器通常使用192.168.1.1和192.168.0.1做为LAN接口的地址,这两个地址也是最多见的网关地址。

下面总结的不够好 还需直接上网查

网关的英文名称:gateway,又叫作网间链接器、协议转换器。网关是在采用不一样体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不一样的网络互连。网关既能够用于广域网互连,也能够用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用不一样的通讯协议、数据格式或语言,甚至体系结构彻底不一样的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不一样,网关对收到的信息要从新打包,以适应目的系统的需求。同时,网关也能够提供过滤和安全功能。大多数网关运行在OSI 7层协议的顶层--应用层。
【说明:因为历史的缘由,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天不少局域网采用都是路由来接入网络,所以一般指的网关就是路由器的IP!】

五、route命令的使用

路由选择负责在网络中选择一段最优先的路径将数据传输到目的网络,路由选择的基础和依据是路由表,路由表由目的网络ID、子网掩码、网关、接口和计费组成,经过route print可查看计算机的路由表。

路由表规则怎么起做用的我忘了
IPv4 Route Table
  ===========================================================================
  Interface List
  0x1 ........................... MS TCP Loopback interface
  0x10003 ...00 03 ff 25 88 8c ...... Intel 21140-Based PCI Fast Ethernet Adapter
  (Generic)
  ===========================================================================
  ===========================================================================
  Active Routes:
  Network Destination Netmask Gateway Interface Metric
  0.0.0.0 0.0.0.0 172.16.11.1 172.16.11.30 20
  127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
  172.16.11.0 255.255.255.0 172.16.11.30 172.16.11.30 20
  172.16.11.30 255.255.255.255 127.0.0.1 127.0.0.1 20
  172.16.255.255 255.255.255.255 172.16.11.30 172.16.11.30 20
  224.0.0.0 240.0.0.0 172.16.11.30 172.16.11.30 20
  255.255.255.255 255.255.255.255 172.16.11.30 172.16.11.30 1
  Default Gateway: 172.16.11.1
  ===========================================================================
  Persistent Routes:
  None
路由表中每个路由表项(或路由)都由五个字段组成:
  网络目标地址(Network Destination):表明某个可能的目的地址,它是一个IP地址或子网,即表示IP数据包被转发到何处的地址。好理解
  掩码(Netmask):一个用于将某数据包中的IP地址中的目标地址字段与上面可能的网络地址匹配起来的位模式。好理解,和目标地址配合使用
  网关(Gateway):下一跳的IP地址,数据包必须被转发到此,才能到达特定的目的网络。
  接口(Interface):下一跳的接口,这个接口必须用于将数据包进行转发,以达到特定的目的网络。
  跳数(metric):表示到达目的的过程当中通过了多少跳数(路由器数),即路由的成本。
有了网关及目标地址还要接口作什么?
示例一:目标主机在本地子网上
  假设这个服务器(172.16.11.30)要将数据包发往同一子网内的另外一台主机(IP地址为172.16.11.80)。那么这个数据包的源地址为172.16.11.30,目标地址为172.16.11.80。下面咱们将展现Windows是如何用其路由表来决定选择使用哪条路由的:
  一、 Windows首先依次从路由表中取出每个路由,并将数据包的目标地址(172.16.11.80)与选中路由的掩码执行逻辑“与”运算。下面展现结果,这里,路由表中的每个路由是经过其网络目的地址肯定的:
Route Netmask 172.16.11.80 AND Netmask
0.0.0.0 0.0.0.0 0.0.0.0
127.0.0.0 255.0.0.0 172.0.0.0
172.16.11.0 255.255.255.0 172.16.11.0
172.16.11.30 255.255.255.255 172.16.11.80
172.16.255.255 255.255.255.255 172.16.11.80
224.0.0.0 224.0.0.0 160.0.0.0
255.255.255.255 255.255.255.255 172.16.11.80
二、对每个路由来讲,这个“与”运算的结果要与路由的网络目标地址比较,两者的一次匹配意味着这条路由可用于将数据包转发到其目标地址。若是发现不仅有一个匹配,Windows就会选用拥有最长匹配的路由(即1的位数最高的路由)。若是这并无产生惟一的路由,Windows就职意地选用一个做为路由。从上面的列表中,这个“与”运算的结果致使了两个匹配(路由1和3),所以Windows选择了拥有最长匹配的路由,即第三行的那个。其结果是Windows知道了使用哪一个路由将数据包传送到目的地。下面是这条路由在服务器的路由表中看起来的样子:
  Network Destination Netmask   Gateway  Interface Metric
  172.16.11.0 255.255.255.0 172.16.11.30   172.16.11.30 20
  三、 Windows如今要使用下面的算法来决定下一步作什么:
  a) 若是路由的网关字段与服务器上的一个网络接口的地址相匹配(或者若是网关是空的话),那么Windows就会用在路由中指定的接口将数据包直接发送到目标地址。
  b) 若是路由的网关字段并不与服务器上网络接口的任意地址相匹配,Windows将会把数据包转发给路由中的网关字段的地址。
  很明显,这里符合条件a,路由的网关字段(172.16.11.30)即为分配给服务器单个网卡的地址。Windows所以会做出决定认为目标地址位于本地子网上,这也就是说Windows不须要将数据包发送到任何路由器,而是直接发送给其目的地址。在此例中,Windows使用服务器的172.16.11.30的网络接口,简单地将数据包发送给172.16.11.80,接收主机获得了数据包。
示例二:目标主机在远程子网上
  如今,让咱们继续一样的过程,不过此次咱们假定服务器想把数据包发往一个不一样子网上的一台主机(IP地址为172.16.10.200)。换句话说,数据包的源地址为172.16.11.30,目标地址为172.16.10.200。下面咱们看一下Windows是如何利用路由表决定选择哪条路由的: 网管网bitsCN_com
  一、Windows从路由表中取出每一条路由,将数据包的目标地址(172.16.10.200)与路由中的掩码进行“与” 运算。运算结果以下:

Route           Netmask                  172.16.10.200 AND Netmask
0.0.0.0         0.0.0.0                   0.0.0.0
127.0.0.0       255.0.0.0                 172.0.0.0 
172.16.11.0     255.255.255.0             172.16.10.0
172.16.11.30    255.255.255.255           172.16.10.200 
172.16.255.255  255.255.255.255           172.16.10.200
224.0.0.0       224.0.0.0                 160.0.0.0 
255.255.255.255 255.255.255.255           172.16.10.200

二、对于每一条路由来讲,“与”运算的结果要与路由中网络目标地址相比较,两者匹配意味着这条路由可被用于将数据包转发到其目标地址。从咱们上面的第二张路由表,你能够看出此次只有一个匹配,也就是说是第一行,这个路由的网络目地字段(0.0.0.0)与“与”运算的结果匹配。所以Windows用来将数据包转发到其目标地址的路由即为下面的路由:
  Network Destination    Netmask     Gateway     Interface Metric
  0.0.0.0           0.0.0.0    172.16.11.1   172.16.11.30 20
  3. 而后Windows就会使用前述的算法来决定下一步作什么,此次符合条件b,由于路由的网关字段(172.16.11.1)与分配给服务器的单独网卡的地址(172.16.11.30)并不匹配。Windows所以会决定目标地址位于一个远程子网上,将数据包转发给路由器,路由器经过继续转发数据包将其传送到目的地。在此例中,Windows使用服务器的172.16.11.30网络接口,将数据包发送到在网关字段中所显示的地址。一旦位于172.16.11.1的路由器收到了数据包,它会决定下一步须要采起什么步骤,才能将数据包转发到其最后的目标地址172.16.10.200,而这又依赖于172.16.11.10/24网络是172.16.11.11/24(由单个路由器链接)或一个远程网络的邻近子网(由几个中间网络之间的路由器链接)。

第6章 传输层协议(端到端通讯) 必杀技面试的重点

滑动窗口的题目牛客网上没有答案,高分笔记里只有很简单的一部分流量控制的介绍,没有涉及到滑动窗口。
拥塞控制的题目都搞懂了。

理解端到端通讯的概念。

端口

TCP=面向链接=单播,不能多播,广播=面向字节流 全双工(通讯双方可同时进行发送和接收数据)

• 了解UDP报文传输服务的特色、报文形式和封
装形式。
• 了解TCP格式的主要字段及其含义和功能。

源端和目的端的端口号:每一个TCP报文段都包括,用于标识发送端和接收端的应用进程。
序列号:用来标识从TCP发送端向接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节序号。
确认号:指指望接收的下一个报文段的第一个字节的序列号,也就是指望接收对方的下一个报文段首部的序列号字段的值。同时,确认号也代表在确认号以前的全部数据接收方都已经收到。
首部长度字段:占4位,用来标识TCP报文段首部的长度共有多少个32位字块构成,所以首部的长度必定是32位的整数倍。
保留字段:目前未用,供未来使用。
控制字段:用于TCP的流量控制、链接的创建和终止以及表示数据的传送方式等。各位的具体含义以下:
紧急 URG:当该位为1时,代表紧急指针有效,不然无效。
确认 ACK:当该位为1时,代表确认序号有效,即该报文段是一个确认报文段,不然无效。
PSH(PuSH):其值为1时表示接收方应尽快将这个报文段交给应用层处理。
复位 RST(ReSet):重建链接标志。
同步 SYN:同步序号标志,其值为1时用来发起一个链接。
终止 FIN:其值为1时表示发送端完成发送任务。
窗口大小:用来配合TCP中的流量控制算法实现流量控制,该字段的值用来定义通讯对方必须维持的以字节为单位的窗口值,以实现对对方发送数据量的控制。
校验和: 用来校验整个TCP报文段的全部数据的正确性,包括TCP首部和数据。为了校验TCP数据报是否正确地传递到了信宿机,在计算校验和时引入了伪首部的概念,其包括信源机IP地址和信宿机IP地址。

• 掌握TCP链接的创建与关闭过程,TCP链接(服务器/客户机模式)管理包括创建时的三次握手和关闭时的四次握手

滑动窗口机制的工做原理和拥塞控制机制。

TCP流量控制

通常说来,咱们老是但愿数据传输得更快一些。但若是发送方把数据发送得过快,接收方就可能来不及接收,这就会形成数据的丢失。流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
缓存思想:

流量控制的缓存方案.vsdx
62.49KB

两种极端状况:发送方每发送一个字节都要等待接收方确认,通讯效率低; 发送方不关心接收方是否确认,不断发送数据,从而可能形成接收方缓冲区溢出,丢失数据。经过流量控制来定义发送方在收到接收方的确认报文以前。

这个缓存是一个窗口的形式。

能够看出接收方B在发送指令告诉发送方A ,A可以传输什么范围内的数据,已达到控制的目的。

能够发送的数据量。
(1)滑动窗口是实现流量控制的关键技术。

TCP滑动窗口是如何工做的 ?
利用可变窗口大小进行流量控制。在TCP的会话过程当中,容许动态协商窗口大小,从而更加有效地利用带宽。

AN
WIN
如下来自谢希仁课件。

强调三点:
A 的发送窗口并不老是和 B 的接收窗口同样大(由于有必定的时间滞后)。
TCP 标准没有规定对不按序到达的数据应如何处理。一般是先临时存放在接收窗口中,等到字节流中所缺乏的字节收到后,再按序交付上层的应用进程。
TCP 要求接收方必须有累积确认的功能,这样能够减少传输开销。

滑动窗口的作用?(端到端的)流量控制。提升了整个网络的吞吐率,可以提升传输效率,可以提升信道利用率,容许接收端在拥有容纳足够数据的缓冲以前对传输进行限制。不可以防止报文段顺序出错,这是序列号来保证的。

连接:https://www.nowcoder.com/ques...
来源:牛客网

滑动窗口本质上是描述接受方的 TCP 数据报缓冲区大小的数据,发送方根据这个数据来计算本身最多能发送多长的数据。若是发送方收到接受方的窗口大小为 0 的 TCP 数据报,那么发送方将中止发送数据,等到接受方发送窗口大小不为 0 的数据报的到来。书中的 P211 和 P212 很好的解释了这一点。
关于滑动窗口协议,书上还介绍了三个术语,分别是:
  1. 窗口合拢:当窗口从左边向右边靠近的时候,这种现象发生在数据被发送和确认的时候。
  2. 窗口张开:当窗口的右边沿向右边移动的时候,这种现象发生在接受端处理了数据之后。
  3. 窗口收缩:当窗口的右边沿向左边移动的时候,这种现象不常发生。
    TCP 就是用这个窗口,慢慢的从数据的左边移动到右边,把处于窗口范围内的数据发送出去(但不用发送全部,只是处于窗口内的数据能够发送。)。这就是窗口的意义。图 20-6 解释了这一点。窗口的大小是能够经过 socket 来制定的, 4096 并非最理想的窗口大小,而 16384 则可使吞吐量大大的增长。

如下有关TCP滑动窗口机制描述正确的是(A,D)
A、在TCP链接的两端分别有滑动窗口,控制接受和发送
B、仅在TCP链接的发送端有滑动窗口便可很好实现流量控制
C、仅在TCP链接的接收端有滑动窗口便可很好实现流量控制
D、TCP链接两端的滑动窗口大小能够自由调节,没必要彻底一致

牛客网搜索:滑动窗口

下面的主要概念:缓冲区、连续重发协议
停--等协议
选择重发协议
争用协议

滑动窗口协议中,发送窗口保存的是()
可发送的帧序号
可接收的帧序号
不可发送的帧序号
不可接收的帧序号

滑动窗口协议中发送窗口中的编号表明 1 .

数据链路层滑动窗口机制中发送窗口(已发送未确认)最大值主要依据( )。
发送缓冲区大小(大于发送窗口)
接受方缓冲区大小(最小为1)
链路传播时延
以上均是

TCP使用滑动窗口进行流量控制,流量控制其实是对( )的控制。
发送方数据流量
接收方数据流量
发送、接收方数据流量
链路上任意两节点间的数据流量

Internet TCP 滑动窗口协议规定( )。

在发送方未被确认的报文数最多为发送窗口的大小 应该是对的吧
固定的窗口大小
发送窗口大小只和接收方的接收能力有关 跟双方应该都有关
发送方根据本身的发送能力肯定窗口大小 跟双方应该都有关

(   )是关于滑动窗口机制的错误描述。

发送窗口必须大于接受窗口 错误。发送窗口值不能超过接受窗口值。其余三项不是很清楚,可是A确定是错的
选择重传(SR)在TCP协议中没法彻底实现
后退N帧(GBN)的接收窗口为1
经过设定滑动窗口机制的发送、接收窗口能够实现停等协议

在数据链路层的滑动窗口协议中,当发送窗口容许发送帧的最大顺序号为15时,接收窗口的最大尺寸应为?

试根据发送滑动窗口变化过程,在下图所示各发送窗口下标出“发送帧序号”或“接收确认帧序号”说明。(参照第一窗口说明)
4155837_1493453297743_9F84DCB65651112566954012CDB27F72
4155837_1493453297743_9F84DCB65651112566954012CDB27F72
A 发送四号帧 B 接收确认 3 号帧 C 发送 5 号帧 D 接收确认 4 号帧 E 中止

假设你受雇设计一个使用滑动窗口的可靠的字节流协议( TCP )。这个协议将运行在 100Mbps 的网络上。网络的 RTT 是 100ms ,并且数据段的最大生存周期是 60 秒。
( 1 )应该在协议首部的接受窗口字段包含多少比特?
( 2 )协议首部的序号字段大约占多少比特?

在滑动窗口协议中,若是发送窗口大于一、接收窗口等于1时,就是()。
连续重发协议
停--等协议
选择重发协议
争用协议

滑动窗口的大小如何肯定?

中止等待协议中

P347

对于有序接收的滑动窗口协议,若序号位数为3位,则发送窗口最大尺寸为( 7)
难道是 2^n - 1
对于无序接收的滑动窗口协议 , 若序号位数为 n, 则发送窗口最大尺寸为
2^n-1
2^n
2^(n-1)
2n-1

在连续ARQ协议中,当滑动窗口序号位数为n,则发送窗口最大尺寸为( A )。
2的n次方-1
2的n次方
2n-1
2n

下面的主要概念:缓冲区、连续重发协议
停--等协议
选择重发协议
争用协议

(2)对滑动窗口傻瓜综合症的进一步改进。

当发送应用进程产生数据很慢,或者接收应用进程接收处理数据很慢时,或者两种状况都存在时,在滑动窗口的操做中有可能出现发送方每次只发送包含一个字节(或较小字节数)的报文段,同时接收方每次也仅对接收到的包含一个字节(或较小字节数)的报文段进行确认。
这样势必大大下降网络带宽的使用效率,此时一般也称为出现了傻瓜窗口综合症。为此,在TCP中主要引入了3种策略予以改进。
Nagle算法

 Clark算法

延迟确认算法

TCP拥塞控制

拥塞控制有哪几种方法?
(1)慢启动算法

(2)拥塞避免算法
(3) 重传定时器

纵坐标时拥塞窗口大小 cwnd,单位 MSS(最大报文段长度MSS=1K字节); 横坐标是RTT(Round-Trip Time): 往返时延,拥塞窗口大小cwnd随RTT变化。

【TCP拥塞控制的面试全攻略】
慢启动曲线是怎样的?

对于TCP Tahoe版本, 拥塞控制机制(指慢启动和拥塞避免算法)中,拥塞发生后,慢启动门限ssthresh被设置为当前拥塞窗口cwnd大小的一半(图中,T=13时发生拥塞,新的ssthresh=12,cwnd=1);当拥塞窗口小于阈值(ssthresh = 慢开始门限 = 慢启动阈值)时,是慢启动算法阶段,拥塞窗口呈指数增加,T=T0时,cwnd=1(都是从1开始的,没有从0开始的),cwnd = 2^(T - T0);到达阈值后,是拥塞避免算法阶段,呈线线增加(应该是加法增大,每一个RTT,加1)直到网络拥塞发生(超时或收到重复确认)。


  注意图中的快恢复曲线。新版本的内核中,TCP 使用的是 Reno版本 , 发生拥塞以后,有两种策略:一、IF 拥塞= 超时,   慢开始策略 ; IF 拥塞 = 重复确认 收到三个重复的ACK后, 快恢复+快重传策略。

客户端C和服务器S之间创建一个TCP链接,该链接老是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,若是接下来的4个RTT( = 往返时间)内的TCP段的传输是成功的,那么当第4个RTT时间内发送的全部TCP段都获得了ACK时,拥塞窗口大小是:
7KB
8KB
9KB
16KB
正确答案:C
16KB超时,阈值变为8KB,客户端从1KB开始穿(执行快开始算法)
1RTT 结束,1KB->2KB
2RTT 结束,2KB->4KB
3RTT 结束,4KB->8KB(到达阈值,执行拥塞避免算法)
4RTT 结束,8KB->9KB
结果C

• 掌握TCP中超时重发原理和差错控制机制。

TCP/IP Socket编程 基础理论 第7章套接字编程

第7章 套接字编程(终版).ppt
3.82MB
第七章 套接字socket编程基础 PPT导读
一、客户机(客户端)/服务器(服务器端)模型

客户机/服务器的工做流程
服务器端程序的特色
客户机端程序的特色

二、套接字概念。在TCP/IP中提供了3种不一样套接字类型:流套接字(SOCK_STREAM)(面向链接=可靠的=TCP、适合传输大量数据、只能单播)、数据报套接字(SOCK_DGRAM)(无链接=不可靠=UDP)、原始套接字(SOCK_RAW)(能够读写内核没有处理的IP数据包)。
三、套接字编程基础部分。

客户机/服务器程序的工做模型分为面向链接和无链接两种。
经常使用的7个套接字API模型。
套接字编程的相关数据结构。
网络字节顺序:
    不一样体系的CPU在内存中的数据存储每每存在差别。如Intel的x86系列处理器将低序字节存储在起始地址,而一些RISC架构的处理器,如IBM的370主机使用的PowerPC或Motorola公司生产的CPU,都将高序字节存储在起始位置。这两种不一样的存储方式被称为低位优先(little-endian)和高位优先(big-endian)。
    对于网络上的字节表示法有一个标准——网络字节顺序,它与高位优先相同。以便于不一样体系结构的计算机间的通讯。

四、 以winsock API(Microsoft Windows操做系统类中使用)(C++)为例介绍socket编程

经常使用API。
基于TCP的程序设计方法:流程图、客户机程序、服务器程序。
基于UDP的程序设计方法:流程图、客户机程序、服务器程序。

Java TCP/IP Socket编程

为了方便各位网友学习以及方便本身复习之用,将Java TCP/IP Socket编程系列内容按照由浅入深的学习顺序总结以下,点击相应的标题便可跳转到对应的文章:
                    Java套接字编程简单示例

【Java TCP/IP Socket】Java TCP Socket程编程 (简单的线程)
【Java TCP/IP Socket】Java UDP Socket编程 (简单的线程)
【Java TCP/IP Socket】应用程序协议中消息的成帧与解析
【Java TCP/IP Socket】构建和解析自定义协议消息
【Java TCP/IP Socket】基于线程池的TCP服务器
【Java TCP/IP Socket】TCP Socket通讯中由read返回值形成的的死锁问题
【Java TCP/IP Socket】Java NIO Socket VS 标准IO Socket
【Java TCP/IP Socket】基于NIO的TCP通讯
【Java TCP/IP Socket】深刻剖析socket——数据传输的底层实现
【Java TCP/IP Socket】深刻剖析socket——TCP通讯中因为底层队列填满而形成的死锁问题
【Java TCP/IP Socket】深刻剖析socket——TCP套接字的生命周期
【Java TCP/IP Socket】Socket网络编程知识点总结

应用:(视频)聊天室、 邮件发送程序(代码:https://wenku.baidu.com/view/...

第9章 IP多播和网际组管理协议 导读

一、理解IP多播的基本原理。

二、掌握网际组管理协议IGMP。用于多播路由器和主机之间进行群组关系的管理,其运行于主机和与主机直接相连的多播路由器之间。

主机经过此协议告诉本地路由器但愿加入某个特定多播组,同时路由器经过此协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该局域网是否仍有属于某个多播组的成员),进行所连网络组成员关系的收集与维护。

[#]三、了解常见的多播路由选择算法(基于前面的路由选择算法)。网上并无多播路由选择算法习题。

四、基于多播的应用程序编程:掌握基于WinSock 2的多播应用程序设计方法。
补充:Java广播和多播简单示例程序 http://www.cnblogs.com/xujian...

第10章 应用层经常使用协议与编程

• 熟悉MAPI编程接口,掌握基于SMAPI的邮件应用程序设计方法。

设计 开 发 了 一个 简 单 的邮 件 收 发程 序 , 其中 在CMyEMail类中实现对SMAPI接口函数的功能封装,实现了初始化、 登陆邮件系统、 发送邮件、 接收邮件和注销登陆等操做。 并在该类的基础上实现一个简单的邮件收发程序。 ( 详细设计参见代码)

Java.mail.* 接收和发送邮件代码 https://wenku.baidu.com/view/... 15页(字体大),一个发送类,一个接收类。排版混乱

登陆邮件系统、 发送邮件、 接收邮件和注销登陆 项目设计书 visual c++ http://dwz.cn/68wzcC 项目书40页 代码十几页(字体中)

上面这个题目我找到的代码都特别长,你(们)那里有什么比较好的答案吗?

其余资料