01网络编程基本概念
目录
一 网络的分层
网络有两个分层方案,一种是传统的5层结构,另一种是ISO的7层结构
1: 5层网络
(1)物理层
(2)数据链路层(PPP,Wifi,Ethernet)
(3)网络层(IP,ARP)
(4)传输层(TCP,UDP,ICMP)
(5)应用层(HTTP,FTP,SMTP,Ping,DNS)
2 :7层网络
(1)物理层
(2)数据链路层(PPP,Wifi,Ethernet)
(3)网络层数据的表示、安全、压缩。(IP,ARP)
(4)传输层(TCP,UDP,ICMP)
(5)会话层(建立、管理、终止会话,在五层模型里面已经合并到了应用层)
(6)表示层(数据的表示、安全、压缩,在五层模型里面已经合并到了应用层。格式有,JPEG、ASCll、DECOIC、加密格式等。)
(7)应用层(HTTP,FTP,SMTP,Ping,DNS)
二 IPv4和IPv6
1 IPv4是使用4个字节数字表示的网络地址。一般写为点分四段的格式。
由于IPv4使用4个字节表示,因此,写成bit的形式是32个bit位。目前地址可以分为A、B、C、D、E五类地址。
A类地址:bit表示:0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,子网掩码:255.0.0.0
B类地址:bit表示:10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,子网掩码:255.255.0.0
C类地址:bit表示:110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,子网掩码:255.255.255.0
D类地址:bit表示:1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,不区分网络地址和主机地址,用于组播
E类地址:bit表示:11110XXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,不区分网络地址和主机地址,用于实验和测试
三 DNS
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS 好比一个映射,在网络中不同主机之间相连,需要对方的地址才能实现连接,而这个地址就是IP,但是由于IP过于难记,所以使用域名的话方便记忆。域名也更好反映网站的类型。所以DNS就像一个中介一样。
四 C/S B/S
C:client 客户端 S:server 服务端 B:browser 浏览器
C/S :客户端和服务端之间的连接通信。
什么是客户端: 客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序
什么是服务端:服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据
B/S:浏览器和服务端之间的通信
我们浏览网页的时候,下载一张图片,图片是从服务端下载到我们电脑,浏览器为我们展示图片,图片本身是存放在服务端的。
五 TCP/IP
对应最上面的的一幅图片。
IP:就是不同主机的身份编码一样,不同主机要连接,就必须知道对方的IP,才能进行通信连接,IP是网络层
TCP:有了连接地址,就需要进行通信。TCP就相当于管道一样,不同主机之间进行通信的桥梁。TCP是传输层
六 数据包
包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。
我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。
如果数据包太大,该数据包就会被分片。也就是说,大的数据包会被分成两个或多个小数据包,每个小数据包都有自己的IP头,但其数据仅仅是大数据包数据的一部分。每个小数据包可以经由不同的路径到达目的地。在传输的路途上,每个小数据包还可能会被继续分片。当这些小数据包到达目标机器时,他们会被重新拼装到一起。按照规则规定,在中间节点上,不允许对小数据包进行拼装组合