IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 三、网络编程 -> 正文阅读

[网络协议]三、网络编程

TCP/IP协议?

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP?和IP两个协议,而是指一个由FTPSMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

网络基础知识-TCP/IP协议各层详解 - 战争热诚 - 博客园 (cnblogs.com)

???????? TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。

tcp/ip是个协议组,它可以分为4个层次,即网路接口层,网络层,传输层,以及应用层

在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层有TCP,UDP协议

而在应用层有HTTP,FTP,DNS等协议

因此HTTP本身就是一个协议,是从WEB服务器端传输超文本,到本地浏览器的一个传输协议

下面我们用一张图来准确形象的表示

(1)物理层(Physical Layer)

? ? ? ? 物理层利用传输介质为数据链路层提供物理链接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。它关心的问题有:多少伏电压代表1?多少伏电压代表0?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。

(2)数据链路层(Data Link Layer)

????????数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧

????????数据帧中包含物理地址(又称MAC地址)控制码、数据及校验码等信息。该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路

????????此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。

?????????4> 两个重要设备名称:网桥和交换机。

????????mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

(3)网络层(Network Layer)

????????网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。

????????网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址

IP协议:

  • 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
  • 范围0.0.0.0-255.255.255.255
  • 一个ip地址通常写成四段十进制数,例:172.16.10.1
  • 子网划分的具体内容请看博客:网络基础知识--子网划分 - 战争热诚 - 博客园

子网掩码:

所谓“子网掩码”,就是表示子网络特征的一个参数,它在形式上等同于IP地址,也就是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。

  比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

  子网掩码是用来标识一个IP地址的那些位是代表网络位,以及那些位代表主机位。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分为网络地址和主机地址两部分。

????????192.168.1.0/24

????????????????.1和.0是同一个子网下面的两个地址。

????????????????另外,24是指子网掩码的位数。

????????????????子网掩码的位数总共有32个,写的的/24个就是24个1,其它8位都是0。

????????????????/24就可以写成子网掩码是:11111111 11111111 11111111 00000000

????????????????例如:

????????????????/25,就代表有25个1,7个0,一共是32位。

????????????????8位数为一组,就可以写成:11111111 11111111 11111111 10000000

IP地址分类

其中A、B、C3类(如下)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。

IP地址的划分:
?? ??? ??? ?A类:1.0.0.0 - 126.255.255.255
?? ??? ??? ??? ?子网掩码:255.0.0.0
?? ??? ??? ??? ?管理超大规模性网络
?? ??? ??? ??? ?
?? ??? ??? ??? ?私有IP地址:10.0.0.0 - 10.255.255.255
?? ??? ??? ?
?? ??? ??? ?B类:128.0.0.0 - 191.255.255.255
?? ??? ??? ??? ?子网掩码:255.255.0.0?
?? ??? ??? ??? ?管理大中规模性网络
?? ?
?? ??? ??? ??? ?私有IP地址:172.16.0.0 - 172.31.255.255
?? ??? ??? ?
?? ??? ??? ?C类:192.0.0.0 - 223.255.255.255
?? ??? ??? ??? ?子网掩码:255.255.255.0
?? ??? ??? ??? ?管理中小规模性网络
?? ??? ??? ??? ?
?? ??? ??? ??? ?私有IP地址:192.168.0.0 - 192.168.255.255?
?? ??? ??? ??? ?
?? ??? ??? ?D类:224.0.0.0 - 239.255.255.255
?? ??? ??? ??? ?用于组播和广播
?? ??? ??? ??? ?
?? ??? ??? ?E类:240.0.0.0 - 255.255.255.254?
?? ??? ??? ??? ?用于实验

?? ??? ??? ?私有IP不能直接上网
?? ??? ??? ?共有IP可以直接上网

????????环回接口(loopback)。平时我们用127.0.0.1来尝试自己的机器服务器好使不好使

?IP报文:

???????? IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输,要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。

????????IP协议头:

????????8位生存时间 TTL:这个字段规定该数据包在穿过多少个路由之后才会被抛弃(这里就体现出来IP协议包的不可靠性,它不保证数据被送达),某个ip数据包每穿过一个路由器,该数据包的TTL数值就会减少1,当该数据包的TTL成为零,它就会被自动抛弃。这个字段的最大值也就是255,也就是说一个协议包也就在路由器里面穿行255次就会被抛弃了,根据系统的不同,这个数字也不一样,一般是32或者是64。
?ARP协议(ARP:Address Resolution Protocol)

????????地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资

RARP协议(RARP:Reverse Address Resolution Protocol)?

????????反向地址转换协议 ?

????????完成mac地址到IP地址的映射

ICMP(网络控制报文)协议(Internet Control Message Protocol):

? ? ????internet控制消息协议,用于在IP主机路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
? ? ? ? 作用:确认ip包是否到达地址,通知在发送过程中IP包被丢弃的原因

????????我们一般主要用ICMP协议检测网络是否通畅,基于ICMP协议的工具主要有ping 和traceroute

? ? ? ? ping: 它利用ICMP协议包来侦测另一个主机是否可达。可计算间隔时间,并计算有多少个包被送达。

? ? ? ? ping 127.0.0.1? ? ? ? ? ? ? ping www.baidu.com

????????traceroute:用来查看从当前主机到某地址一共经过多少跳路由

(4)传输层(Transport Layer)????????? ? ?

????????传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路

????????传输层传送的协议数据单元称为段或报文

????????传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,迅雷等多个应用程序,

那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序呢?答案就是端口,端口即应用程序与网卡关联的编号。

????????传输层功能:建立端口到端口的通信

????????补充:端口范围0-65535,0-1023为系统占用端口

????????传输层有两种协议,TCP和UDP

TCP协议(TCP,Transmission Control Protocol)

????????传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。

????????可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

UDP协议(UDP,User Datagram Protocol)

????????用户数据报协议, 无连接、资源小、实现简单、不安全、不可靠

????????不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

(5)会话层(Session Layer)

????????会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。

(6)表示层(Presentation Layer)

????????表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

(7)应用层(Application Layer)

????????应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。

1、HTTP?? ?超文本传输协议,:万维网的基本协议;
2、FTP?? ??? ?文件传输协议
3、TFTP?? ?简单文本传输协议
4、SMTP?? ?邮件传输协议
5、TELNET ?远程登录协议,提供远程访问其它主机功能, 它允许用户登录internet主机,并在这台主机上执行命令;
6、DNS?? ?域名解析协议,该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址。

7、SNMP 简单网络管理协议,该协议提供了监控网络设备的方法, 以及配置管理,统计信息收集,性能管理及安全管理等;

网络通信三要素

———1:IP地址

———2:端口????????

????????要将数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识,为了方便称呼这些数字,则将这些数字称为端口。(此端口称为一个逻辑端口)

———3:传输协议

????????UDP????????TCP

网络

全部动态_牛客网 (nowcoder.com)

链接:https://www.zhihu.com/question/311853144/answer/595290931

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:49:02  更:2021-09-23 11:49:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:38:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码