TCP/IP 计算机网络基础

来源:互联网 发布:mac版matlab安装 编辑:程序博客网 时间:2024/05/24 06:59

基础知识:

1.计算机硬件组成基本结构:

输入单元(Input Unit)

输出单元(Output Unit)

存储单元(Memory)

控制单元(Control Unit,CU)

算数逻辑单元(ALU)


2.CPU(Central Processing Unit)

包括控制单元与算数逻辑单元



对TCP/IP的理解

TCP/IP的漂亮之处在于:协议越往上层越复杂。我们把网络定义为互相连接在一起的设备,网络的本质作用还是“端到端”的通信,然而希望互相通信的设备并不一定要“直接”连接在一起,因此必然需要一些中间的设备负责转发数据,因此就把连接这些中间设备的线缆上跑的协议定义为链路层协议,实际上所谓链路其实就是始发与一个设备,通过一根线,终止于另一个设备。我们把一条链路称为“一跳”。因此一个端到端的网络包含了“很多跳”。

3.TCP/IP中的协议

OSI中的层功能TCP/IP协议族应用层文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
IGP,EGP表示层数据格式化,代码转换,数据加密没有协议会话层解除或建立与别的接点的联系没有协议传输层提供端对端的接口TCP,UDP网络层为数据包选择路由IP,ICMP,OSPF,EIGRP,IGMP,ARP,RARP数据链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,MTU物理层以二进制数据形式在物理媒体上传输数据ISO2110,IEEE802,IEEE802.2

4.主要协议简述:

ARP: IP地址映射到物理地址

RARP:物理地址映射IP地址

ICMP:因特网控制消息协议,提供因特网上数据传输错误时的错误消息。

IP:将数据报(Datagram)切割为分组(Packet)通过不同路由传送至目的地。

       非连接,不可靠

TCP:传输控制协议

          连接(基于流,3次握手,4次挥手),可靠(ACK确认号,序列号),报文按序到达(序列号),端到端流量控制(滑动窗口来实现)

 (FTP,Telnet,SMTP)

UDP:用户数据报协议

           非连接,不可靠(TFTP,DNS,NFS,SNMP)

HTTP:超文本传输协议

             通用的、无状态的(协议对于事务处理没有记忆能力

FTP:文件传输协议(控制连接 PORT21,数据传输PORT20)

SNMP:简单网络管理协议

SMTP:简单电子邮件传送协议

POP3:邮局协议

DNS:域名服务器,通过名称数据库将主机名称转换成IP地址,也可反向转换

Telnet:远程登录

DHCP:动态主机配置协议,自动分配IP地址,自动更新TCP\IP相关设置


4.NFS与FTP区别:

NFS:网络文件系统(文件访问服务)

1)文件传输(FTP)功能简单,NFS可以进行文件的增删改

2)文件传输必须用特定程序,访问不用

3)文件处理形式。FTP先将文件复制回本地系统,处理后再返回,NFS可以直接修改远程文件。

4)网络花费时间、访问请求必须等待回应,若出现堵塞,花费网络时间更长,会是服务器效率变低。


5.GGP、EGP、BGP、IGP

GGP:网关对网关协议

EGP:外部网关协议

BGP:边界网关协议

IGP:内部网关协议

         RIP 向量距离 收敛慢 小型网络

         HELLO 以网络延迟取代向量距离

         IGRP 较大网络 只与邻居路由器交换信息 收敛慢

         EIGRP  收敛快

         OSPF 开放最短路径优先 收敛快 大型网络


BGP与EGP异同:

异:BGP在路由上加了权值,权值越小代表越佳

同:采用Link State的理由选择协议


RIP OSPF BGP异:

RIP:

(1)RIP协议基于你有一个思想,我有一个思想,我们交换思想就可以得到更全面的想法一样,路由器仅和相邻的路由器交换信息; 
(2)路由器交换的信息就是自己目前的路由表,具体是目的网络,最短距离,下一条网络; 
(3)RIP协议按固定时间交换信息,比如30秒,就交换一次路由表信息,如果超过了某个固定时间(比如三分钟)还没有交换信息,说明目的路由器不可达,将距离设置为16。

(4)RIP使用UDP数据报进行传送。

OSPF:

(1)OSPF向所有路由器发送信息,它使用一种泛洪法(路由器的一种转发方式),向所有输出接口发送信息,这样最后所有的路由器都会得到这个消息的副本。 
(2)发送的信息是与本路由器相邻的路由器的链路状态信息。 
(3)只有当链路状态发生变化时,才会使用泛洪法转发信息。

(4)OSPF直接使用IP数据报进行封装传送。

BGP:

与内部网关协议不同,边界网关协议的目标并不是找到到目的网络的一个最短路径,而是找到一个合适的路径

(1)在每个自治系统里面选择至少一个BGP发言人,这个角色是用来跟相邻自治系统来交换信息的,信息包括到达某个网络所要经过的一系列自治系统。 
(2)当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达个自治系统的合适的路由。

BGP协议交换路由信息的节点数量级是自治系统的量级。





6.3次握手和4次挥手
     TCP使用3次握手建立一条连接,该握手初始化了传输可靠性以及数据顺序性必要的信息,这些信息包括两个方向的初始序列号,确认号由初始序列号生成,使用3次握手是因为3次握手已经准备好了传输可靠性以及数据顺序性所必要的信息,该握手的第3次实际上并不是需要单独传输的,完全可以和数据一起传输。
     TCP使用4次挥手拆除一条连接,为何需要4次呢?因为TCP是一个全双工协议,必须单独拆除每一条信道。注意,4次挥手和3次握手的意义是不同的,很多人都会问为何建立连接是3次握手,而拆除连接是4次挥手。3次握手的目的很简单,就是分配资源,初始化序列号,这时还不涉及数据传输,3次就足够做到这个了,而4次挥手的目的是终止数据传输,并回收资源,此时两个端点两个方向的序列号已经没有了任何关系,必须等待两方向都没有数据传输时才能拆除虚链路,不像初始化时那么简单,发现SYN标志就初始化一个序列号并确认SYN的序列号。因此必须单独分别在一个方向上终止该方向的数据传输。


转:http://blog.csdn.net/chaos_epimetheus/article/details/7269016

1、 为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。
2、 为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态?
这是因为:虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的ACK报文。

      第二,就是防止上面提到的已失效的连接请求报文段出现在本连接中,A在发送完最有一个ACK报文段后,再经过2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。


7.常见的应用中有哪些是应用TCP协议的,哪些又是应用UDP协议的

qq:登陆采用TCP协议和HTTP协议,你和好友之间发送消息,主要采用UDP协议,内网传文件采用了P2P技术。


8.TCP 的流量控制与拥塞控制可以说是一体的

1.1 窗口

(1)接收端窗口 rwnd     

接收端缓冲区大小。接收端将此窗口值放在 TCP 报文的首部中的窗口字段,传送给发送端。
(2) 拥塞窗口 cwnd (congestion window)    

发送端缓冲区大小

(3)发送窗口swnd

             发送窗口的上限值 = Min [rwnd, cwnd]

当 rwnd < cwnd 时,是接收端的接收能力限制发送窗口的最大值。
当 cwnd < rwnd 时,则是网络的拥塞限制发送窗口的最大值。 

1.2 滑动窗口

发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。还可发送 300 字节。



发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。现在发送端最多还可发送 400 字节的数据。

流量控制是通过滑动窗口实现的,拥塞避免主要包含以下2个内容:

(1)慢开始,拥塞避免

(2)快重传,快恢复

2.1.1 慢开始原理

(1)在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值。
(2)在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值。
(3)用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。

2.2 快重传和快恢复

2.2.1 快重传

发送端只要一连收到三个重复的 ACK 即可断定有分组丢失了,就应立即重传丢失的报文段而不必继续等待为该报文段设置的重传计时器的超时

2.2.2 快恢复

(1) 当发送端收到连续三个重复的 ACK 时,就重新设置慢开始门限 ssthresh。
(2) 与慢开始不同之处是 swnd 不是设置为 1,而是设置为 ssthresh + 3 * MSS。 
(3) 若收到的重复的 ACK 为 n 个(n > 3),则将 cwnd 设置为 ssthresh + n * MSS。
(4) 若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。
(5) 若收到了确认新的报文段的 ACK,就将 swnd 缩小到 ssthresh。










原创粉丝点击