热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

#运维小白的成长日记第七天OSI七层传输层/应用层精讲!

运维小白的成长日记第七天-OSI七层传输层应用层精讲!1、IP提供了点到点的连续接,通过IP地址可以找到目标主机。但是目标主机有很多应用,服务器到底使用哪个应用来响应客户端?通过端
运维小白的成长日记第七天-OSI七层传输层/应用层精讲!

1、IP提供了点到点的连续接,通过IP地址可以找到目标主机。但是目标主机有很多应用,服务器到底使用哪个应用来响应客户端?通过端口号决定。
2、TCP:传输控制协议。可靠的、面向连接的协议。相当于是打电话的过程,需要建立连接、发送数据、断开连接。
3、UDP:用户数据报协议。不可靠的,非面向连接的协议。相当于是发信息的过程。不需要建立连接,直接发送数据。
4、TCP头部的主要字段:
目标端口号:表明要访问的哪个应用,如80端口表示http
源端口号:标识自己的应用
序列号:上层数据被分成很多段,段的编号
确认号:接收方收到数据段后,要告诉发送方已收到
窗口大小:接收方告知发送发一次可以发多少个段
5、TCP建立连接的过程称作三次握手。
(1)发送方发送SYN=1的数据段给接收方
(2)接收方回应SYN=1,ACK=1的数据段给发送方
(3)发送方发送ACK=1的数据段给接收方
6、TCP发送完数据后,断开连接的过程有4步,叫四次断开
(1)主机A发送FIN=1的数据段给对方B
(2)另外一方B回应ACK=1的数据段给A
(3)B也发送FIN=1的数据段给A
(4)A回应ACK=1的数据段给B
技术分享图片第三次握手的必要性:防止已失效的请求报文段突然又传送到了服务端而造成连接的误判。假如客户端发出连接请求A,由于网络原因,服务端并没有收到A,于是客户端又发送了连接请求B,并建立了连接,完成通信,断开连接。这时候,服务端突然又收到了A,于是看作是一次新的连接请求,进行第二次握手,由于不存在第三次握手,所以这时已经建立了TCP连接。但实际上客户端并没有发起连接,所以不会传递数据,那么这条连接就会变成一条死连接。
技术分享图片
必要性:为保证单向通信的可行性,所以多一次握手。

    1)主动断开方发送FIN时,被动断开方要回复ACK,意思是“我收到你的FIN了”;

    2)主动断开方发送FIN并不意味着立即关闭TCP连接,而是告诉对方自己没有更多的数据要发送了,只有当对方发完自己的数据再发送FIN后,才意味着关闭TCP连接;

    3)被动断开方收到FIN并回复ACK后,此时TCP处于“半关闭”状态,为保证被动断开方可以继续发送数据,所以第二个FIN并不会伴随ACK发送,所以比连接时多一个报文段。

    基于TCP的应用

HTTP:80 WEB服务
HTTPS:443 安全的WEB服务
TELNET:23 远程管理路由器交换机用到
SMTP:25 简单邮件传输协议,用于发邮件
POP3:110 邮局协议第三版,用于收邮件
FTP:21 文件传输协议
DNS:53 域名服务


UDP

TFTP:69 简单文件传输协议
DNS:53 域名服务
NTP:123 网络时间协议,用于同步系统时间
应用层
1、DNS:域名服务,用于将名称解析为IP地址,反之亦然
2、DNS是一个倒置的树形结构。最顶部是根域,用英文句点(.)表示。全球有13个根域服务器,一台主服务器在美国,9台辅助服务器在美国,2台在欧州,一台在日本。
3、根域服务器以下是一级域(顶级域)、二级域、三级域……最多127级
4、百度的域名:baidu.com,达内的域名:tedu.cn
5、主机的完整名称:主机名.域名后缀
FQDN:完全合格域名、完全限定域名、全称域名
技术分享图片

6、初期的域名,顶级域只有七个:
com:商业
net:网络
gov:政府
edu:教育
mil:军事
int:国际化
org:组织
7、后来又使用两个字母表示一个国家或地区,成为地理域
8、客户机解析域名的过程
(1)查询自己的缓存
ipconfig/displaydns 查看本机DNS缓存
ipconfig/flushdns 清除本机缓存
(2)查询HOSTS文件
C:\Windows\System32\drivers\etc\ hosts
(3)本地DNS服务器(配置网络参数时指定的)
9、收发邮件
发信客户端被称作MUA(邮件用户代理),服务器被称作MTA(邮件传输代理)
10、实现DNS:windows server中有DNS服务器软件
11、实现http/ftp:IIS(Internet信息服务)
12、FTP有两个端口21和20。21用于控制连接,20用于数据传输。

# 运维小白的成长日记第七天-OSI七层传输层/应用层精讲!


推荐阅读
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 本文详细介绍如何在 iOS 7 环境下申请苹果开发者账号,涵盖从访问开发者网站到最终激活账号的完整流程。包括选择个人或企业账号类型、付款方式及注意事项等。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细探讨了 PHP 中 method_exists() 和 is_callable() 函数的区别,帮助开发者更好地理解和使用这两个函数。文章不仅解释了它们的功能差异,还提供了代码示例和应用场景的分析。 ... [详细]
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
author-avatar
透明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有