网络基础

OSI七层模型
ISO(International Standardization Organization) 国际标准化组织 在1987年制定了OSI七层参考模型
OSI(Open System Interconnection) 开放系统互联

应用层(Application layer):用户接口、应用程序 HTTP、FTP、Telnet
表示层(Presentation layer):数据的表示、压缩和加密等 MP3、JPEG
会话层(Session Layer):允许不同机器上的用户之间建立会话关系 session 会话
区分不同应用间的数据,负责建立、维护和管理会话连接 QQ、MAIL
传输层(Transport Layer):实现网络不同主机的进程间的数据通信,提供可靠或者不可靠的数据传输
TCP:Transmission Control Protocol 传输控制协议 port 端口
提供面向连接的可靠的数据传输、适合传输大数据、速度慢
UDP:User Datagram Protocol 用户数据报协议
提供非面向连接的不可靠的数据传输、传输小数据、速度快

网络层(Network Layer):提供逻辑地址(IP地址)、选路、数据从源端到目的端的传输
网络层的主要设备:路由器 router source 源 desitination 目的
数据链路层(Data Link Layer):将上层数据封装成帧,用MAC地址访问媒介,错误的检测和修正
数据链路层分为两个子层:
MAC(Media Access Control):负责MAC地址寻址并且提供介质访问控制方法
LLC(Logical Link Control):为上层协议提供sap服务访问点并且为数据加上控制信息
数据链路层主要设备:交换机 switch 二层
物理层(Physical Layer):提供设备之间的比特流传输 bit bps
物理层的主要设备:集线器(HUB) 中继器 传输介质连接器

osi模型只是参考模型。
真正使用的是TCP/IP协议模型
image.png
IP地址
ip地址组成 : IP地址由4部分数字组成,每部分数字对应于8位二进制数字,各部分之间用小数点分开 这是点分2进制 如果换算为十进制我们称为点分十进制.每个ip地址由两部分组成网络地址(NetID)和主机地址(HostID).网络地址表示其属于互联网中的哪一个网络,而主机地址则表示其属于该网络中的哪一台主机.

ip地址的划分
ip地址划分为五类 为 A,B,C,D,E

A类地址:范围从0-127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的
因此A类地址的范围其实是从1-126之间。
  如:10.0.0.1,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。转换为2进制来说,一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从0.0.0.1 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方-2主机数目)。
以子网掩码来进行区别::255.0.0.0
127.0.0.0到127.255.255.255是保留地址,用做循环测试用的

B类地址:范围从128-191,如172.168.1.1,第一和第二段号码为网络号码,剩下的2段号码为本地计算机的号码。转换为2进制来说,一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。(2的16次方-2)
以子网掩码来进行区别:255.255.0.0
169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.0到169.254.255.255中临时获得一个IP地址。

C类地址:范围从192-223,如192.168.1.1,第一,第二,第三段号码为网络号码,剩下的最后一段号码为本地计算机的号码。转换为2进制来说,一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。(2的7次方-2)
以子网掩码来进行区别: 255.255.255.0

D类地址:范围从224-239,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
224.0.0.0-239.255.255.255 组播地址

E类地址:范围从240-254,以“11110”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。全"1"的IP地址(“255.255.255.255”)是当前子网的广播地 址。

240.0.0.0-255.255.255.254 保留地址

子网掩码
就是为了区分ip地址的中的网络号和主机号的

私有地址
所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址

在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是私有地址

路由
路由器:隔离广播域
交换机:隔离冲突域
网关:跨网络通信的数据转发(局域网中不需要经过网关)
路由概念
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程
路由工作包含两个基本的动作

    1.通过网络传输信息
    2.确定最佳路径

路由的分类
通常情况下,指导 IP 转发的路由信息可以通过如下三种不同的途径来获得:
1)静态路由 由系统管理员手动配置的到目标网络的唯一路径,当网络结构发生变化时也必须由系统管理员手动的修改配置。但合理的使用静态路由可以改进网络的性能,为重要的应用保存带宽。
2)缺省路由 由系统管理员手动配置的一种特殊路由,可以将所有找不到匹配路由的报文转发到指定的缺省网关。
3)动态路由 由动态路由协议从其他路由器学到的到达目标网络的发送路径,可以根据网络结构的变化动态地更新路由信息

路由表
所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径

路由表中若有相同条目
*掩码长度一样,路由表中谁在上面用谁
*掩码长度不一样,哪个掩码长用谁
*内核自动维护

查看路由信息
    # route -n
添加静态路由
    # route  add   -net 192.168.10.0   netmask 255.255.255.0   gw 192.168.10.12  
//网段
    route  add  -net  192.168.10.100  netmask 255.255.255.255  gw 192.168.10.13  
           添加                                       掩码               下一跳
//地址精确
    route  add  default gw 192.168.10.11   //默认网关 缺省路由,找不到的情况下再匹配
                            添加网关
    # route add default gw 192.168.10.12
开启路由转发
  临时开启
    # echo 1 > /proc/sys/net/ipv4/ip_forward 
  永久开启
    # vim /etc/sysctl.conf
        net.ipv4.ip_forward = 1
    # sysctl -p           //重新加载配置文件

永久添加静态路由
    # vim /etc/sysconfig/static-routes
        any  net 192.168.100.0/24  gw 192.168.10.12

TCP
TCP(Transmission Control Protocol) 传输控制协议
提供面向连接的可靠的数据传输、适合传输大数据、速度慢

三次握手
TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。这就是面试中经常会被问到的TCP三次握手。只是了解TCP三次握手的概念,对你获得一份工作是没有任何帮助的,你需要去了解TCP三次握手中的一些细节。先来看图说话:
image.png

1. 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
2. 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
3. 第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
完成了三次握手,客户端和服务器端就可以开始传送数据。以上就是TCP三次握手的总体介绍。

四次挥手
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
image.png

TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
1. 第一次挥手:主机1(可以使客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
2. 第二次挥手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
3. 第三次挥手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
4. 第四次挥手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明主机2已正常关闭,那好,主机1也可以关闭连接了。

各个状态的意义如下:
LISTEN - 侦听来自远方TCP端口的连接请求;
SYN-SENT -在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2- 从远程TCP等待连接中断请求;
CLOSE-WAIT - 等待从本地用户发来的连接中断请求;
CLOSING -等待远程TCP对连接中断的确认;
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED - 没有任何连接状态;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柚子伴酒x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值