一.网络TCP/IP层次模型

 1.网络层次模型概念介绍:TCP/IP协议就是用于简化OSI层次,以及相关的标准。传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信

  是由一组不同功能的协议组合在一起构成的协议族,利用一组协议完成OSI所实现的功能,不单单是指TCP.IP这两个协议。

 2.网络层析模型作用说明:

  

  OSI七层模型简化四层DoD模型,应用层、表示层、会话层统称为应用层,传输层称为主机到主机层,网络层即为因特网层,数据链路层和网络层统称为网络接入层。

 3.网络层次模型组成部分如图:

  

  每一层都包含了对应的协议规则,这里说明下ICMP协议,即为平时如果我们检查主机是否在线,通常使用ping 192.168.1.111,这里就用到了ICMP协议,如果ping不通也可能是ICMP协议关闭引起的哦!

 4.网络层次模型琢层说明

  (1)首先应用层:

  

  应用层包含了以上诸多协议规则,包括一些对应的端口,其中除了TFTP是UDP协议之外,其他全部都为TCP协议。

  (2)主机到主机层:

  

  主机到主机层只包含了两个TCP和UDP这两个网络协议

  (3)因特网层/网络接入层:

  

  因特网层负责将分组报文从源端发送到目的端,为网络中的设备提供逻辑地址

二.网络TCP/IP模型精讲

 1.网络重要协议说明:

  TCP(传输控制协议):属于面向连接的网络协议,其可靠性相对UDP来说比较高、流控、使用TCP应用,例如WEB浏览器;电子邮件;文件传输程序。

  UDP(用户报文协议):属于无连接的网络协议,不可靠传输,尽力而为,尽力传递,使用的UDP应用,例如域名系统(DNS),视频流,IP语音程序等。

 2.网络协议报文结构:

  源端口随机分配,目标端口使用知名端口,在linux系统上的/proc/sys/net/ipv4/ip_local_port_rang位置存放的是本地端口的取值范围。

  由于TCP协议头部使用16位来保存端口号,所以端口的个数最多为65536个,2~16=65536,0号端口不会被tcp和udp协议使用。tcp和udp协议端口号范围是1-65535.

  控制字段说明(控制字段信息默认为0,控制字段功能不起作用;控制字段信息置为1,表示相应控制字段功能开启):

  ack:表示确认控制字段,实现数据可靠连接

  syn:表示请求建立连接字段

  fin:表示请求断开连接字段

  sep*num:此字段表示数据在发送过程中,需要把切分的数据排上序号依次发送给接收方,这样避免接收到数据在打包后的损坏问题。

  ack*num;此字段表示在数据发送中,排序号的数据发送给接收号,接收号按序号给出一个接收相应,避免序号紊乱问题。

  应用客户端使用的源端口号一般为系统中未使用的且大于1024的,目的端口号为服务端应用服务的进程,如telnet为23.

 3.网络连接的建立过程(TCP/IP)三次握手:

  

  简要概括如下:一握手:请求建立连接(syn)

         二握手:连接确认再请求(ack syn)

           三握手:最后确认,即建立(ack)

 4.网络连接建立过程(四次挥手):

  

  简要概括如下:

  一挥手:请求连接断开(fin)

  二挥手:断开请求要确认(ack)

  三挥手:思考之后要断开(fin,ack)

  四挥手:最后确认,即断开(ack)

 5.网络状态转换过程:

  

  客户端独有的:SYN_SENT 、FIN_WAIT1 、FIN_WAIT2 、CLOSING 、TIME_WAIT 。

     服务端独有的:LISTEN、SYN_RCVD 、CLOSE_WAIT、LAST_ACK 。

  共有的:CLOSED、ESTABLISHED

三.网络TCP/CP涉及的原理

 1.ARR协议原理:

  将ipv4地址解析为MAC地址

  维护映射的缓存

  

  原理说明:当主机1.1想要与其他主机通信发送消息时,需要向其他主机发送大量的广播信息用于查找其他主机,同理其他主机想要发送消息也一样,因此ARP协议就诞生了,当第一次找到其他主机时就会维护一个映射的缓存,下次在连接此主机就无需再发送广播信息来查找主机了。因此ARP协议就是为了解决主机间相互连接时的广播风暴问题。

 2.DNS协议原理:

  DNS是什么?(Domain Name System)

  DNS称为域名系统,在网站运行中起到了至关重要的作用,只要作用是负责把网站域名解析为对应的IP地址。

  

  说明:域名的层次级别:

  第一个级别:称为 根域名服务器 .(全球13个)
       第二个级别:称为 顶级域名服务器(一级域名服务器).com .cn .gov
       第三个级别:称为 二级域名服务器(授权DNS服务器).baidu.com .jd.com
       第四个级别:称为 虚拟主机信息 www.baidu.com www.jd.com

  DNS解析相关命令
       dig @8.8.8.8 www.xxx.com +trace
       nslookup www.xxx.com
       host www.xxx.com    
       ping www.xxx.com

linux基础-TCP/IP协议篇的更多相关文章

  1. 网络基础tcp/ip协议一

    计算机网络: 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统,应用软件,应用程序通过通信线路互连 实现资源共享,信息传递 计算机网络的功能: 数据通信 资源共享 增加可靠性 提高系统 ...

  2. Linux基础:网络协议篇

    01.网络协议 1. 操作系统基础 操作系统(operating System 简称OS)是管理和控制计算机硬件与软件自愿的计算机程序,是直接运行在"裸机"上的基本的系统软件,任何 ...

  3. 网络基础tcp/ip协议四

    网络层的功能: 定义了基于ip协议的逻辑地址. 链接不同的媒介类型. 选择数据通过网络的最佳路劲. 数据包格式: 优先级与服务类型(8)位:优先级与服务类型 标识符,标志,段偏移量:这几个字用来对数据 ...

  4. 网络基础tcp/ip协议二

    物理层解析: 物理层是TCP/IP模型的最低层,物理层为数据提供数据传输可靠通路. 物理层关心的介质: 信号 接口 传输介质 信号的分类:(信号是信息传递的媒介.) 模拟信号:连续变化的物理量 数字信 ...

  5. 网络基础tcp/ip协议五

    传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...

  6. 网络基础tcp/ip协议三

    数据链路层:(位于网络层与物理层之间) 数据链路层的功能: 数据链路的建立,维护. 帧包装,帧传输,帧同步. 帧的差错恢复. 流量的控制. 以太网:(工作在数据链路层) CSMA/CD(带冲突检测的载 ...

  7. java 网络编程基础 TCP/IP协议:服务端ServerSocket;客户端Socket; 采用多线程方式处理网络请求

    1.Java中客户端和服务器端通信的简单实例 Java中能接收其他通信实体连接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一 ...

  8. 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)

    一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...

  9. 【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

    一.前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工作来说这些并不是重点,因此,我不可能从最基础的网络知识开始讲起.本节内容更多是从一个梳理和 ...

随机推荐

  1. java 雪花算法实现获取分布式id

    import java.lang.management.ManagementFactory; import java.net.InetAddress; import java.net.NetworkI ...

  2. 求求你们了,别再写满屏的 if/ else 了!

    为什么我们写的代码都是 if-else? 程序员想必都经历过这样的场景:刚开始自己写的代码很简洁,逻辑清晰,函数精简,没有一个 if-else,可随着代码逻辑不断完善和业务的瞬息万变:比如需要对入参进 ...

  3. Zabbix错误”zbx_mem_malloc(): out of memory”解决方法

    Zabbix Server突然挂了,查看log报错如下: using configuration file: /etc/zabbix/zabbix_server.conf ... [file:dbco ...

  4. Go语言核心36讲(Go语言实战与应用八)--学习笔记

    30 | 原子操作(下) 我们接着上一篇文章的内容继续聊,上一篇我们提到了,sync/atomic包中的函数可以做的原子操作有:加法(add).比较并交换(compare and swap,简称 CA ...

  5. 退出cmd命令

    中断cmd正在执行的任务:按 Ctrl+C退出cmd:exit最好不要直接关闭,而是用Ctrl+C中断任务后在关闭,以免造成程序运行异常.

  6. 搜索系统核心技术概述【1.5w字长文】

    前排提示:本文为综述性文章,梳理搜索相关技术,如寻求前沿应用可简读或略过 搜索引擎介绍 搜索引擎(Search Engine),狭义来讲是基于软件技术开发的互联网数据查询系统,用户通过搜索引擎查询所需 ...

  7. [atAGC045D]Lamps and Buttons

    由于$p_{i}$是随机的,不断选择最小的.未被操作过的$i$并处理其所在的环一定是最优的,而这样与已知$p_{i}$的区别是,当选择了一个$i=p_{i}$,那么必然失败(而已知$p_{i}$时不会 ...

  8. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  9. 文本分类:Keras+RNN vs传统机器学习

    摘要:本文通过Keras实现了一个RNN文本分类学习的案例,并详细介绍了循环神经网络原理知识及与机器学习对比. 本文分享自华为云社区<基于Keras+RNN的文本分类vs基于传统机器学习的文本分 ...

  10. SpringCloud微服务实战——搭建企业级开发框架(二十七):集成多数据源+Seata分布式事务+读写分离+分库分表

    读写分离:为了确保数据库产品的稳定性,很多数据库拥有双机热备功能.也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器:第二台数据库服务器,主要进行读的操作. 目前有多种方式实现读写分离,一种 ...