网络编程day03(网络体系结构、调试命令、TCP/IP对比)

2024-09-07 07:12

本文主要是介绍网络编程day03(网络体系结构、调试命令、TCP/IP对比),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1》网络的体系结构

1> OSI模型

 2> TCP/IP模型

3> 常见网络协议

4> DNS域名解析协议

2》 网络调试命令

1> ping:测试网络连通性(ICMP)

2> netstat 

 3》Dos (拒绝式服务)攻击?

 4》 TCP/IP协议对比


1》网络的体系结构

网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。

每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务。

网络体系结构即网络的层次结构和每层所使用协议的集合

两类非常重要的体系结构:OSI和TCP/IP

1> OSI模型

OSI模型是最理想的模型,只是在理想中的状态,并无法在现实中实现

应用层:指定特定应用的协议,文件传输,文件管理,电子邮件等。

表示层:确保一个系统应用层发送的信息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密。

会话层:通信管理,负责建立或者断开通信连接。

传输层:端口号,数据传输到具体那个进程程序(端到端)

网络层:路由器中是有算法的,ip,(主机到主机)(路由的发送)。

链路层:格式变为帧(把数据分成包,一帧一帧的数据发送)。

物理层:传输的时bit流(0与1 一样的数据),物理信号,没有格式。

 2> TCP/IP模型

应用层:应用协议和应用程序的集合

传输层:决定数据交给机器的那个任务(进程)去处理,通过端口寻址;进程一定有进程号,不一定有端口号,端口号只有在进行网络通信才有

网络层:提供设备到设备的传输,可以理解为通过IP寻址机器

网络接口和物理层:屏蔽硬件差异(驱动),向上层提供统一的操作接口。

OSI和TCP/IP模型对应关系图

3> 常见网络协议

网络接口和物理层:

<1> ppp:拨号协议(老式电话线上网方式)

<2> ARP:地址解析协议 IP-->MAC

<3> RARP:反向地址转换协议 MAC-->IP

网络层:

<1> IP(IPV4/IPV6):网间互连的协议

IP(Internet Protocol,网际协议)是网间层的主要协议,任务是在源地址和和目的地址之间传输数据。IP 协议只是尽最大努力来传输数据包,并不保证所有的包都可以传输到目的地,也不保证数据包的顺序和唯一。

<2> ICMP:网络控制管理协议,ping命令使用

ICMP(Internet Control Message Protocol,网络控制消息协议)是 TCP/IP 的核心协议之一,用于在 IP 网络中发送控制消息,提供通信过程中的各种问题反馈。ICMP 直接使用 IP 数据包传输,但 ICMP 并不被视为 IP 协议的子协议。常见的联网状态诊断工具依赖于 ICMP 协议。

<3> IGMP:网络分组管理协议,广播和组播使用

传输层:

<1> TCP:传输控制协议

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的,可靠的,基于字节流传输的通信协议。TCP 具有端口号的概念,用来标识同一个地址上的不同应用。

<2> UDP:用户数据报协议

UDP(User Datagram Protocol,用户数据报协议)是一个面向数据报的传输层协议。UDP 的传输是不可靠的,简单的说就是发了不管,发送者不会知道目标地址的数据通路是否发生拥塞,也不知道数据是否到达,是否完整以及是否还是原来的次序。它同 TCP 一样有用来标识本地应用的端口号。所以应用 UDP 的应用,都能够容忍一定数量的错误和丢包,但是对传输性能敏感,比如流媒体、DNS 等。

应用层:

<1> SSH:加密协议

SSH(Secure Shell,安全Shell),因为传统的网络服务程序比如TELNET本质上都极不安全,明文传输数据和用户信息包括密码。SSH 被开发出来避免这些问题,它其实是一个协议框架,有大量的扩展冗余能力,并且提供了加密压缩的通道可以为其他协议使用。

telnet:远程登录协议

<2> FTP:文件传输协议

FTP(File Transfer Protocol,文件传输协议)是用来进行文件传输的标准协议。FTP 基于 TCP,使用端口号 20 来传输数据,21 来传输控制信息。

<3> HTTP:超文本传输协议

HTTP(Hyper Text Transfer Protocol,超文本传输协议)是现在广为流行的 WEB 网络的基础,HTTPS 是 HTTP 的加密安全版本。协议通过 TCP 传输,HTTP 默认使用端口 80,HTTPS 使用 443。

<4> DNS:域名解析协议

DNS(Domain Name System,域名系统)是互联网的一项服务,可以简单的将用“.”分隔的一般会有意义的域名转换成不易记忆的 IP 地址。一般使用 UDP 协议传输,也可以使用 TCP,默认服务端口号为53。

<5> SMTP/POP3:邮件传输协议

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是现在在互联网上发送电子邮件的事实标准。使用 TCP 协议传输,端口号为 25。

POP(Post Office Protocol,邮局协议)是支持通过客户端访问电子邮件的服务,现在版本是 POP3,也有加密的版本 POP3S。协议使用 TCP,端口为 110。

4> DNS域名解析协议

概念:

由于使用IP地址来指定计算机不方便人们记忆,且输入时候容易出错,用字符标识网络中计算机名称方法。

这种命名方法就像每个人的名字,这就是域名(Domian Name )

域名服务器(Domain Name server):用来处理IP地址和域名之间的转换。

域名系统(Domain Name System,DNS):域名翻译成IP地址的软件DNS


域名结构:

例如域名 www.baidu.com.cn 从右向左看

cn为高级域名,也叫一级域名,它通常分配给主干节点,取值为国家名,cn代表中国

com为网络名,属于二级域名,它通常表示组织或部门

中国互联网二级域名共40个,edu表示教育部门,com表示商业部门,gov表示政府,军队mil等等

baidu为机构名,在此为三级域名,表示百度

www:万维网world wide web,也叫环球信息网,是一种特殊的信息结构框架。

DNS工作过程

 

DNS黑客技术

2》 网络调试命令

1> ping:测试网络连通性(ICMP)

作为平时网络连通检测使用最多的命令,它的作用主要是:

1> 用来检测网络的连通情况和分析网络速度;

2> 根据域名得到服务器IP

3> 根据ping 返回的TTL 值来判断对方所使用的操作系统及数据包经过路由器数量

字节:数据包大小,也就是字节

时间:响应时间(我发送数据包到该地址到该地址回应数据包到我这),这个时间越小,说明链接这个地址的速度越快

TTL:Time To Live,从源到目的,每经过一个路由器,TTL减1,当TTL=0时,包丢掉

2> netstat 

netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,他可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat 用于显示与IP、TCP、UDP相关的统计数据,一般用于检验本机端口的网络连接情况。

作用:测试网络状态

netstat -a      //查看所有网络状态
netstat -at     //查看tcp所有网络状态
netstat -au     //查看udp所有网络状态
netstat -l      //查看处于监听状态的链接
netstat -lt     //查看处于监听状态的链接tcp
netstat -lu     //查看处于监听状态的链接udp
netstat -lx     //查看处于监听状态的链接unix

 3》Dos (拒绝式服务)攻击?

DOS:即Denial Of Service,拒绝服务的缩写,拒绝服务,DOS攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。

要对服务器实施拒绝服务攻击,主要有以下两种方法:

①迫使服务器的缓冲区满,不接收新的请求;

②使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接,这也是DoS攻击实施的基本思想。

为便于理解,以下介绍一个简单的DoS攻击基本过程:攻击者先向受害者发送大量带有虚假地址的请求,受害者发送回复信息后等待回传信息。由于是伪造地址,所以受害者一直等不到回传信息,分配给这次请求的资源就始终不被释放。当受害者等待一定时间后,连接会因超时被切断,此时攻击者会再度传送一批伪地址的新请求,这样反复进行直至受害者资源被耗尽,最终导致受害者系统瘫痪。

 4》 TCP/IP协议对比

UDP、TCP协议的相同点:都存在于传输层,全双工通信

不同点:

TCP:全双工通信、面向连接、可靠

TCP(即传输控制协议):是一种面向连接的传输层协议,他能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)

高可靠原因:

1.三次握手、四次挥手

2.序列号和应答机制

3.超时、错误重传机制

4.拥塞控制、流量控制


适用场景:

适合用于对传输质量要求较高的通信

在需要可靠数据传输的场合,通常使用TCP协议

MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议


UDP:全双工通信、面向无连接、不可靠

UDP(用户数据包协议):是一种不可靠的无连接协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

适用场景:

发送小尺寸数据(如对DNS服务器进行IP地址查询时)

适合于广播/组播式通信中。

MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议


今天的分享就到这里结束啦,如果有哪里写的不好的地方,请指正。
如果觉得不错并且对你有帮助的话点个关注支持一下吧!

这篇关于网络编程day03(网络体系结构、调试命令、TCP/IP对比)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144413

相关文章

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon