面试突击67:说一下 TCP/IP 协议?以及每层的作用?

TCP/IP 包含四层模型,从上层往下层分别是:应用层、传输层、网络层、数据链路层。有些资料也会说 TCP/IP 是五层模型,所谓的五层模型指的是在数据链路层下面还有一个物理层,而作为软件工程师一般不需要关注物理层,所以通常我们说 TCP/IP 四层模型更多一些。

1.应用层

应用层的作用是负责应用程序间的数据通讯的。 不同的网络应用需要不同的应用层协议,比如电子邮件传输 SMTP 协议、文件传输 FTP 协议、网络远程访问 Telnet 协议等等。

应用层的常见协议有以下两个:

  • DNS 域名解析协议(Domain Name System,域名系统),DNS 是将域名和 IP 做一个映射,因为在程序间通讯依靠的是 IP,但 IP 地址不方便记忆,而域名方便记忆,所以将二者作为一个 key-value 映射在一起,这样知道了域名置换就能找对与之相对应的 IP 了,这样既能方便用户记忆,同时又能满足程序间的数据通讯。
  • HTTP 协议(HyperText Transfer Protocol,超文本传输协议),互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。

2.传输层

传输层的主要作用是负责两台主机间的数据传输的。 如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

注意:应用层和传输层描述的主体对象是不同的,应用层描述的主体是”应用程序间”,而传输层描述的主体是”两台主机间”。其中,一个主机可以包含多个应用程序,所以二者是不同的。

传输层的常见协议有以下两个:

  • TCP 协议(Transmission Control Protocol,传输控制协议):提供了稳定的、需要连接的、面向字节流的协议。
  • UDP 协议(User Datagram Protocol,用户数据协议):提供了无连接的、不稳定的、面向数据报的协议。

3.网络层

网络层的作用是负责网络上的地址管理和路由选择的。 在数据通讯时,可以选择很多条路径(抵达目的地的),比如从西安到北京,可以选择先从西安 -> 太原 -> 北京,也可以选择从西安 -> 郑州 -> 石家庄 -> 北京,还可以选择从西安 -> 延安 -> 呼和浩特 -> 张家口 -> 北京,究竟选择那一条路呢?这就是网络层负责的。

4.数据链路层

数据链路层的作用是负责设备之间的数据帧的传送和识别的。 数据在传输时需要经过多个设备进行数据传输,而数据链路层就是负责相邻设备间的数据传输和识别的。
数据链路层可以完全消除网络层和物理层之间的不同,将数据在链路层进行有效的识别和传输。

5.物理层(可选)

物理层的作用是负责将数据转换成信号,再将信号转换为数据的。 转换方法因通讯媒体不同而不同,所以没有特定的协议。

TCP/IP 包含了五层(或四层)模型,从上层往下层分别是:

  • 应用层:负责应用程序间的数据通讯。
  • 传输层:负责两台主机之间的数据传输。
  • 网络层:负责网络地址的管理和路由选择。
  • 数据链路层:负责设备之间的数据帧的传送和识别。
  • 物理层(可选):负责数据和信号间的转换。

Original: https://www.cnblogs.com/vipstone/p/16504912.html
Author: Java中文社群
Title: 面试突击67:说一下 TCP/IP 协议?以及每层的作用?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/539336/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SSM整合_年轻人的第一个增删改查_新增

    前端格式校验、用户名校验、后端校验、JSR303校验 写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建SSM整合_年轻人的第一个增删改查_查找SSM整合_年轻人的第一个增…

    Java 2023年6月5日
    0121
  • 利用fiddler core api 拦截修改 websocket 数据

    一般的中间人攻击基本都是拦截修改普通的http协议里面的内容,而对于怎么拦截修改websocket协议传输的内容好像都没有多少介绍. talk is cheap show me t…

    Java 2023年6月16日
    066
  • windows 的 nginx 运行脚本

    起因 起因是要在公司和家里都要运行nginx进行前端的动静分离, 其实最好的方案是吧nginx部署在云服务上, 但是网络不互通. 最后就只能下载一个windows的nginx了, …

    Java 2023年6月8日
    072
  • Spring事务传播属性

    Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior()…

    Java 2023年5月30日
    084
  • java Future CompletableFuture

    1.1 概述 Future没法直接对多个任务进行链式、组合等处理,而CompletableFuture是对Future的扩展和增强。CompletableFuture实现了Futu…

    Java 2023年5月29日
    090
  • 【JDK】分析 String str=““ 与 new String()

    一、基础概念 为了讲清楚他们的差异,这里先介绍几个概念。 1.1 常量池 所谓常量池:顾名思义就是用来存放一些常量的。该常量是在 编译期被确定,并被保存在已编译的 .class文件…

    Java 2023年6月5日
    093
  • 数组

    数组介绍: 可以存放同一类型的数据,包括基本数据类型和引用类型 *数组也是一种数据类型,引用类型 数组的声明和创建: 动态初始化创建–> 数据类型[] 数组名 =…

    Java 2023年6月16日
    050
  • linux基本命令

    cd 切换文件夹 cd /home 绝对路径 以包目录开头 cd admin 相对路径 不以包目录开头 cd .. 返回上级目录 cd ~ 到自己的家目录 /home/admin …

    Java 2023年6月16日
    074
  • java 5种IO模型

    人的痛苦会把自己折磨到多深呢? You cannot swim for new horizons until you have courage to lose sight of t…

    Java 2023年6月9日
    069
  • java项目中VO、DTO以及Entity,各自是在什么情况下应用的

    按照标准来说: 举个例子: 在vo里,就应该有下面三个(因为对应html页面上三个字段) private string name; private string sex; priv…

    Java 2023年6月7日
    082
  • nacos配置中心文件(bootstrap.properties)不生效问题解决

    springcloud整合nacos作为配置中心时,配置文件不生效的问题在这个问题处卡了一天多,在网上各种搜索。大多数解决方案都是在bootstrap.properties文件中配…

    Java 2023年6月7日
    083
  • 使用 sed 处理文本文件

    sed 是一款 GNU 流编辑器,可以按照指定的规则去处理文本文件或流,其强大的功能使用户在命令中快捷地修改文本文件成为可能。 它不会修改文件,除非使用shell重定向来保存结果。…

    Java 2023年6月7日
    0102
  • RocketMQ:Docker构建部署RocketMQ:4.9.2

    1.1 创建Dockerfile文件(Java8版本RocketMQ4.8.0先看下方3.3内容) 编辑Dockerfile文件, vim Dockerfile-namesrv 内…

    Java 2023年6月7日
    069
  • ucore操作系统学习(一) ucore lab1系统启动流程分析

    一、ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu、内存、磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异;对上则提供封装良好的应用程序接口,简化应用程序…

    Java 2023年6月8日
    075
  • java运行时创建对象

    使用JDK自带的反射(java.lang.reflect)或者自省(java.beans.Introspector)运行时创建对象。 有很多场景需要运行时创建对象,比如Copy对象…

    Java 2023年6月5日
    055
  • 我在Google AppEngine上部署了一个Java应用(OpenID测试)

    我在Google AppEngine上部署了一个Java应用(OpenID测试)http://cogito-study.appspot.com Google Apps不支持线程,所…

    Java 2023年5月29日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球