计算机网络基础学习(一)

发布于:2022-08-05 ⋅ 阅读:(322) ⋅ 点赞:(0)

前言

计算机网络是什么?

利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统;

主要网络有哪些?

1.局域网 LAN;(作用范围一般为几米到几十公里)
2.城域网 MAN;(界于WAN与LAN之间)
3.广域网 WAN;(作用范围一般为几十到几千公里)

计算机网络发展史

1.诞生阶段,单个计算机为中心的远程联机系统;
2.ARPANET,多个主机通过通信线路互联起来;
3.开放性的标准化体系结构,OSI诞生;
4.Intentnet互联网;

计算机网络体系结构

计算机网络体系结构

TCP/IP协议族

Transmission Control Protocol / Internet Protocol的简写,传输控制协议/因特网互联协议,是Internet最基本的协议,Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成;协议采用了4层的层级结构;它是利用IP进行通信时所必须用到的协议群的统称;

TCP/IP概念层模型 功能 TCP/IP协议族
应用层 文件传输、电子邮件、文件服务、虚拟终端 TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telent
传输层 提供端对端的接口 TCP、UDP
网络层 为数据包选择路由 IP、ICMP、RIP、OSPE、BGP、IGMP
链路层 传输有地址的帧以及错误检测功能 SLTP、CSLIP、PPP、ARP、RARP、MTU

TCP 面向连接的、可靠的流协议;
UDP 面向无连接的通讯协议;
IP 在源地址和目的地址之间传送的数据包;
ICMP 控制报文协议;
IGMP internet组管理协议;
ARP 地址解析协议;
RARP 反向地址转化协议;

TCP和UDP

TCPUDP都是传输层的协议,传输层主要为两台主机上的应用程序提供端到端的通信;

不同之处:TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个建立连接的过程,等到连接建立后才开始传输数据,而且传输过程中采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,发送完成后还会关闭连接。所以TCP要比UDP可靠的多;

UDP是把数据发出去后,不管对方是不是在接收,也不管对方是否能接收的了,也不需要接收方确认,属于不可靠的传输,可能会出现丢包现象;

我们常用的网络应用基本上都是基于TCPUDP的,这两个协议又会使用网络层的IP;但是我们完全可以绕开传输层的TCPUDP,直接使用IP,甚至直接访问链路层,比如tcpdump程序就是直接和链路层进行通信的;
传输协议图

网络通信中的值和端口号

MAC地址:全称叫做媒体访问控制地址,也称为局域网地址以太网地址物理地址,由网络设备制造商生产时写入硬件内部。MAC地址与网络无关;

IP地址:全称叫做互联网协议地址,为互联网上的每一个网络和每一台主机配置一个唯一的逻辑地址,与物理地址作区别;所以IP地址用来识别TCP/IP网络中互连的主机和路由器;

端口号用来识别同一个计算机中进行通信的不同应用程序,因此也被称为程序地址;

TCP三次握手

TCP是面向连接的通信协议,通过三次握手建立连接,然后才开始数据的读写,通讯完成时要拆除连接。
TCP三次握手
TCP提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作;
所谓三次握手是指建立一个TCP连接时需要客户端和服务端总共发送三个包以确认连接的建立;

第一次握手 客户端将标志位SYN置为1,随机产生一个seq = J,并将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认;

第二次握手 服务端接收到数据包后由标志位SYN =1 知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack = J+1,随机产生一个值seq = K,并将该数据包发送给客户端以确认连接请求,服务端进入SYN_RCVD状态;

第三次握手 客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack = K+1,并将该数据包发送给服务端,服务端检查ack是否为k+1,ACK是否为1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态,完成三次握手,随后客户端与服务端之间可以开始数据传输了;

为什么TCP握手需要三次?

TCP是可靠的传输控制协议,而三次握手是保证数据可靠传输又能提高传输效率的最小次数。
三次握手的过程是通信双方互相告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤;
如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号得不到确认;
如果是四次握手,很明显,三次握手后,通信的双方已经知道了对方序列号的起始值,也确认了对方知道自己序列号起始值,第四次没有必要了;

TCP三次握手的漏洞SYN洪泛攻击

TCP三次握手是有一个缺陷的,如果我们利用三次握手的缺陷进行攻击,这个攻击就是SYN洪泛攻击。三次握手中有一个第二次握手,服务端向客户端应答请求,应答请求是需要客户端IP的,攻击者可以伪造这个IP,往服务端狂发第一次握手的内容,第一次握手中客户端IP地址是伪造的,从而服务端忙于进行第二次握手但第二次握手没有结果,导致服务器被拖累死机;

解决方案 使用防火墙,在确认了连接的有效性后,才向内部的服务端发起SYN请求;


网站公告

今日签到

点亮在社区的每一天
去签到