一.IP地址与端口号
IP地址就相当于我们在网络中的坐标(类比一下我们网购时填的地址)
通过IP地址我们可以访问到别人的电脑
IP分为IPv4和ipv6,现在主要用的还是ipv4,IPv4是32位比特为,通常我们会按照八位一取的方式和点分十进制的方式来表示,如"127.0.0.1"
前面我们说到通过ip地址能访问到别人电脑但是电脑之间的通讯是需要通过软件的,这个时候我们就需要知道是和电脑中的哪个软件通讯了.
端口号就是对电脑中软件进行的编码,例如你写了一个网络通讯的程序,你可以设置他的端口号为8080,这个时候才能正常的通讯了.
端⼝号是0~65535范围的数字,在⽹络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收⽹络数 据。
二.协议
网络通讯不是简单的你说我听,你问我答,还需要遵循一定的协议
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵 从的⼀组约定,规则。如怎么样建⽴连接,怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
协议在网络中是通过数据包传输的.
协议分层
OSI七层模型
OSI:即Open System Interconnection,开放系统互连
•
OSI 七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。
•
OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传
输;
OSI 七层模型划分为以下七层:
OSI 七层模型既复杂⼜不实⽤:所以 OSI 七层模型没有落地、实现。
实际组建⽹络时,只是以 OSI 七层模型设计中的部分分层,也即是以下 TCP/IP 五层(或四层)模型来 实现。
TCP/IP五层(或四层)模型:
TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。
•
应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远 程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层。
•
传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发 送到⽬标主机。
•
⽹络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。
•
数据链路层:负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上 检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。 有以太⽹、令牌环⽹,⽆线LAN等标准。交换机(Switch)⼯作在数据链路层。
•
物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞 线)、早期以太⽹采⽤的的同 轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理 层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层。
以下为同⼀个⽹段内的两台主机进⾏⽂件传输的大致过程:
三.封装与分用
•
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报
(datagram),在链路层叫做帧(frame)。
•
应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装
(Encapsulation)。
•
⾸部信息中包含了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。
•
数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的 "上层协议字段" 将数据交给对应的上层协议处理。
下图为数据封装的过程:
就好比套娃,从应用程序出来,每一层拿到都要在上面拉一坨,也就是一步步的封装.
分用正好与封装相反,以太网驱动程序拿到数据之后,经过层层读取,将首部一点点剥去拿到数据就叫分用.
四.客户端与服务器(请求与响应)
客户端(client)指的是网络通讯中面向用户的那一部分界面和功能可以简单的理解为安装到本地的程序.
服务器是指提供服务的计算机或设备,它可以是一台物理服务器或者是一个虚拟服务器。服务器接收来自客户端的请求,并根据请求的内容进行相应的处理。服务器可以提供各种服务,例如网页服务、文件存储服务、数据库服务等。
当服务器主动发送一个请求给服务器之后,服务器会进行相应的处理,并将处理结果返回给客户端,也就是响应,可以是一对多,多对多,多对一等方式,在这个过程中服务器与客户端之间不一定要建立连接,当使用udp协议时,服务器和客户端彼此并不会保持连接,数据按照一个数据包一个数据包的传输,中间如果出现啥问题,双方都无法知道,而如果使用tcp协议,双方会经历三次握手建立连接,当中间发生丢包(数据损失)时,对方会给予一定反馈,是一种更为可靠的通讯.