网络基础之TCP/IP协议族
一、TCP/IP协议族
1、什么是协议?
计算机与网络设备相互通信依赖于相同的方法,比如,双方通信基于何种语言等。而把通信所依赖的这一切方法统称为规则,而我们就把这种规则称为协议。
协议中存在各种各样的内容,包括电缆的规格、IP地址选定方法、通信双方建立的通信顺序以及web页面显示需要的处理步骤等
2、什么是TCP/IP协议?
把与互联网相关联的协议集合称为TCP/IP协议;另一种说法是TCP、IP是两种协议。
二、TCP/IP分层管理
1、TCP/IP协议族为什么要分层?
这是因为如果互联网只有一个协议管理的话,当有一部分需要改变时,那么整体就需要改变,这样增加了整改的难度。相反,如果分层的话,某一部分需要整改的话,只需要单独整改那一部分即可。
2、TCP/IP协议族分成几层,分别有什么作用?
TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。

三、TCP/IP通信传输流
(一)通信协议流
利用TCP/IP协议族进行通信,会按照分层的顺序双方进行通信。发送方从应用层--->数据链路层,接收方则从数据链路层--->应用层。

- 客户端发送一个http请求,想获取web页面,在位于应用层客户端程序使用的是HTTP协议。
- 在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
- 在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。
- 接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求。
(2)通信数据流
发送端与接收端之间在传递数据时,发送端通过一层就会打上对应层的首部信息;对应的接收端每通过一层就会去掉该层的首部信息。

参考:图解HTTP
网络基础之TCP/IP协议族的更多相关文章
- 第12章 网络基础(1)_网络分层和TCP/IP协议族
1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...
- 【Linux网络基础】TCP/IP 协议簇(各个常见协议介绍)
一.应用层协议 1. FTP 协议所在层次:应用层协议 名称:FTP协议 协议端口:20,21 协议说明: FTP(File Transfer Protocol,文件传输协议)是TCP/IP协议组 ...
- 网络基础二 tcp/ip协议簇 端口 三次握手 四次挥手 11种状态集
第1章 概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成 ...
- 网络基础知识-TCP/IP协议各层详解
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)
一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...
- 网络基础篇(一)--TCP/IP协议族
TCP/IP协议族是一个分层,多协议通信体系. 1 TCP/IP协议族体系结构 TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层. 1.1 数据链路层 实现网卡接口的网络驱 ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- 重识TCP/IP协议族与HTTP基础
不忘初心 砥砺前行, Tomorrow Is Another Day ! 本文概要: TCP/IP协议族的网络分层 TCP三次握手四次挥手 Http简介 报文结构 Http的请求方法及状态码 常用的H ...
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
随机推荐
- Thinkphp5.0 自定义命令command的使用
在app下的command文件中,定义命令所在的模块以及命名. 然后保存,打开cmd,php think 定义的那个command的名字,完整的命令行为:php think clearInvalidO ...
- H5 移动调试全攻略
H5 移动调试全攻略 随着移动设备的高速发展,H5 开发也成为了 F2E 不可或缺的能力.而移动开发的重中之重就是掌握调试技巧,定 Bug于无形. 一.概要 因为移动端操作系统分为 iOS 和 And ...
- Debug和Release区别(转)
地址:https://zhidao.baidu.com/question/629188090208609884.html 最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题 ...
- 【串线篇】mybatis-config.xml配置事项
一.术语 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂, plugins 插件, e ...
- pycharm查找替换快捷键
查找:CTRL + F 替换:CTRL + R 如果想删除,替换那一栏不填就可以了
- Halo(四)
BeanWrapper 接口 操作属性 package org.springframework.beans; BeanWrapper bw = new BeanWrapperImpl(beanObje ...
- C++11新特性之 Move semantics(移动语义)
https://blog.csdn.net/wangshubo1989/article/details/49748703 这篇讲到了vector的push_back的两种重载版本,左值版本和右值版本.
- linux shell的单行多行注释
1.单行注释,使用符号# echo " echo "test" #echo "comment“ 2. 多行注释 (1)使用 :<<! ! file ...
- bzoj 3011
传送门: http://www.lydsy.com/JudgeOnline/problem.php?id=3011 一想到这个第一反应是树形dp,然后10^18 (' ' ) 所以我直接搞了一个 ...
- mpu6050学习
一.MPU6050初始化 /**************************实现函数******************************************** *函数原型: ...