network
网络
前言:
最近无论是打ctf还是日常学习,生活,娱乐
都离不开科学上网
我遇到了许多网络上的问题
包括但不限于
VPN的原理是什么?
netcat(
nc)原理?WebSocketReflectorX(学长前辈们开发的ctf题目服务器连接工具)原理是什么?为什么我明明开着
VPN,但是在终端(wsl,cmd)中还是无法科学上网,使用curl ip.sb命令后发现ip依旧在广东?我在
VMware虚拟机中的ubuntu网络又是怎么来的?为什么深圳校区和广州校区同时连校园网可以在局域网下联机玩
mc?GitHub SSH keys是什么?
git原理?
我都比较茫然TT
因此,现在开始网络的学习
以解决问题为导向
顺便学习基础知识
开始吧!
网络模型与基础
先来学习一下分层协议栈
这是一切的基础
TCP/IP四层模型
实际上教学常用OSI七层模型
但是真正理解起来还是TCP/IP四层模型比较实用
如下:
应用层传输层网络层数据链路层
ps:其实应该还有一层物理层?
应用层
典型协议有HTTP DNS SMTP FTP SSH等等
定义应用数据的语义和格式,提供面向用户或服务的应用协议
即用户看得见的内容,如浏览器的网页等
传输层
典型协议 TCP UDP
提供端到端进程之间的数据传输服务
控制可靠性,顺序性,重传,流量与拥塞控制
关键元素为PORT,即端口号,
端口(PORT)是一个16位的数字(0 ~ 65535)
其作用是在同一台主机上区分不同的网络进程
传输层便是通过端口用来找到服务器所在的进程
其中TCP的数据单位为Segment(段)
而UDP则为Datagram(数据报)
先总览一下
后续再展开对TCP的深度理解
网络层
即IP协议所在层
进行跨网段的全局寻址与路由转发,将数据包从源主机递送到目标主机
数据单位为Packet(包)
数据链路层
典型协议有 Ethernet WiFi ARP
在同一物理链路或局域网段内提供可靠的帧传输,包括寻址,成帧,差错检测和介质访问控制
数据单位为Frame(帧)
关键元素为48位的MAC地址
物理层
提供比特流的物理传输机制,定义信号的物理表示方式,介质,调制,同步和接口标准
数据单位为bit(比特)
通过电信号(网线)或无线电波(WiFi)传输bit流
额
先忽略具体细节吧