网络编程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

相关文章

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re