网络基础之网络协议
1、互联网协议:
两台计算机之间的通信就和两个人之间电话通讯一样,不同国家的人说不同的语言,为了各个国家的人都能听懂,就需要制定一个统一标准,用英语进行交流。在互联网中有一系列统一的标准,这些标准称之为互联网协议,互联网本质就是一系列的协议,总称为互联网协议。
互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。
2、osi五层模型:
互联网协议根据功能不同分为osi七层、五层、四层。
每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。
2.1、物理层:
不同的计算机需要连接起来,就需要接入internet,完成组网。
物理层的功能:传输电信号,高低电频。
主要借助于 光缆、电缆、无线电、双绞线进行传播。
2.2、数据链路层:
单纯高低电频代表的0和1没有任何意义,必需进行分组,定义不同的功能。
以太网协议(erthernet): 早期各公司都有自己不同的分组方式,后来形成了统一的标准 ,即以太网协议。
一组电信号构成的数据包叫做’帧’
每一数据帧分为报头head和数据data两部分
head包含:(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型,6个字节
data包含:(最短46字节,最长1500字节)
mac地址:
head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
有了mac地址后,同一网路内的两台主机就可以进行通讯了。一台主机以广播的方式发送以太网包给同一局域网内的不同主机,大家都会收到该包,拆开如果发现目标mac不是自己就丢弃。如果是自己就响应。
2.3、网络层:
以太网广播的形式只能在一个局域网内 进行通讯。跨广播域的通讯只能通过路由转发。
IP地址分为两部分,网络部分和主机部分。网络部分表示子网,主机部分标示主机,IP地址和子网掩码组合一起就能判断出不同的IP地址是否在同一个局域网中。
IP数据包也分为head和data部分,直接放入以太网包的data部分。
2.4、传输层:
我们通过IP地址和子网掩码来区分子网,通过以太网层的mac来确定主机。同一台主机上运行这不同的程序,这时候,我们就需要引入端口来区分不同的应用程序。
TCP协议:可靠协议。
UDP协议:不可靠协议。
TCP的三次握手和四次挥手
为什么说TCP可靠而UDP不可靠,这是因为,UDP在法送完数据后就删除缓存,而TCP是在发送后受到一个ACK才会删除缓存。
2.5、应用层:
用户使用的都是应用程序,这些应用程序都运行在应用层。TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
2.6、socket:
socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
3、用户上网流程:
首先获取本机的IP地址、子网掩码、网关的IP地址、DNS的IP地址,通过浏览器输入网址,然后好用过DNS协议(基于udp协议)进行域名解析,得到对应的IP地址。然后发送数据包,请求响应。接着服务器取出完整的TCP数据包,得知这是HTTP请求,然后做出HTTP响应,用TCP协议发回,本机收到改HTTP响应后,就将网页呈现出来了,完成一次网络通信。