TCP/IP详解 读书笔记(一):概述
分层
网络协议通常分不同层次进行开发,每一层负责不同的职责,一个协议簇指的是一组不同层次上的多个协议的组合。
TCP/IP通常被认为是一个四层协议系统:

- 链路层:主要是处理与电缆或其他传输媒介的物理接口细节;
- 网络层:处理分组在网络中的活动,例如分组的选路;在TCP/IP协议簇中包括IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议)、IGMP协议(Internet组管理协议);
- 运输层主要为两台主机上的应用程序提供端对端的通信。TCP/IP协议簇中有两个协议:TCP(传输控制协议)与UDP(用户数据报协议)。
- 应用层:主要负责处理特定的应用程序细节,比如Telnet远程登录、FTP文件传输、SMTP简单邮件传输协议、SNMP简单网络管理协议。
一般而言,应用程序通常是一个用户进程,下三层一般在操作系统内核中执行。应用层关系应用程序的细节,对传输过程一无所知;而下三层处理所有的通信细节,对应用程序的细节一无所知。
TCP/IP的分层
以下为《TCP/IP详解》中会介绍到的网络协议。

IP协议是一种不可靠的网络层协议,在《计算机网络:自顶向下方法》中,称IP为“尽力而为”的协议,也就是说它没有保证一定会传输到正确的主机。
TCP协议是一种可靠的传输层协议,其使用IP作为网络层协议,因为IP并不是一个传输协议,所以TCP为了保持可靠性,做了很多用来保证准确性的处理。
UDP协议是一种不可靠的协议,其使用IP作为网络层协议。
ICMP协议是一个IP协议的附属协议,IP层用它来与其他主机或者路由器交换错误报文和其他重要信息。
IGMP是Internet组管理协议,用来将一个UDP数据报多播到多个主机。
ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址(MAC地址)。
互联网的地址
最初的互联网地址(IP地址)是分为5类的,但是当时并没有想到互联网最后会是一个全球性的网络,导致这样分类会产生IP耗尽的问题。

网络号为一个32bit的数字,我们常见的网络号是xxx.xxx.xxx.xxx,是因为32位的地址通常写成四个十进制的数字,每一个整数代表了一个字节,称为“点分十进制表示法”。
域名地址
很明显,对于机器存储方便的32bit数字,哪怕是使用了点分十进制表示法,对于人类而言还是不好记忆,所以DNS便出现了,其相当于是一个全球性的分布式数据库,存储的便是域名与IP地址之间的映射。
封装
当应用程序通过TCP传送数据的时候,数据被送入协议栈内,然后逐个通过每一层直到被当做一串比特流送入网络。每一层都需要加一些首部信息,可能还会有尾部信息。
- TCP传给IP的数据单元:TCP段;
- IP传给网络接口层的数据单元:IP数据报;
- 通过以太网传输的比特流:帧;

分用
当目的主机收到一个以太网数据帧时,数据开始从协议栈中由底向上一步步去掉各种协议加上的报文首部,并且检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称其为分用。
客户-服务器模型
网络应用程序一般在编写的时候都假设一端为客户,另外一端为服务器,目的是为了让服务器为客户提供一些特定服务。
该服务可以分为两种:重复型和并发型;
重复型
一个重复型服务器一般交互步骤如下:
- 等待客户请求;
- 处理客户请求;
- 发送响应给客户;
- 重复上述流程;
重复型服务器在2状态无法为其他客户机提供服务。
并发型
- 等待一个客户请求;
- 启动一个服务器来处理客户请求,可能生成新的进程、任务、线程。生成的新服务器对客户的全部请求进行处理。处理完毕终止服务器;
- 重复上述流程;
TCP/IP详解 读书笔记(一):概述的更多相关文章
- TCP/IP详解 读书笔记:TCP:传输控制协议
TCP的服务 TCP为应用层提供一种面向连接的.可靠的字节流服务. 一个TCP连接中,仅有两方进行彼此通信,所以广播和多播不能用于TCP. TCP通过以下方式提供可靠性: 应用数据被切割为TCP认为最 ...
- TCP/IP详解学习笔记- 概述
TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构 网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统. 如图所 ...
- TCP/IP详解学习笔记
TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...
- TCP/IP详解学习笔记 这位仁兄写得太好了
TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...
- TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)
TCP/IP详解学习笔记 这位仁兄写得太好了 TCP/IP详解学习笔记 这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...
- 【转】TCP/IP详解学习笔记(二)
TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...
- 【转】TCP/IP详解学习笔记(一)
TCP/IP详解学习笔记 这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-T ...
- TCP/IP详解学习笔记(9)-TCP协议概述
终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...
- TCP/IP详解学习笔记(3)-- IP:网际协议
1.概述 IP是TCP/IP协议族中最为核心的协议.所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输. IP提供不可靠,无连接的数据报传送服务. 不可靠:它不能保 ...
随机推荐
- Solon 1.6.15 发布,增加部分jdk17特性支持
关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web.Data.Jo ...
- 《剑指offer》面试题50. 第一个只出现一次的字符
问题描述 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. 示例: s = "abaccdeff" 返回 "b" s = "&q ...
- leetcode 645. 错误的集合
问题描述 集合 S 包含从1到 n 的整数.不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复. 给定一个数组 nums 代表 ...
- Ultimaker2+使用指南
USB打印 使用最新的官方软件即可进行USB3D打印. 使用时在选项上进行预热以及x,y,z重新归零定位,每次开始都要做. SD卡打印 比较方便,因为电脑可能拿去做其他事情. 打印机堵塞 退出耗材时候 ...
- 前端3D引擎-Cesium自定义动态材质
本文代码基于Vue-cli4和使用WebGL的地图引擎Cesium,主要内容为三维场景下不同对象的动态材质构建. 参考了很多文章,链接附在文末. 为不同的几何对象添加动态材质 不知道这一小节的名称概况 ...
- hbase region, store, storefile和列簇,的关系
先来一张大图. Hbase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写:另外一部分作为BlockCache,主要用于读数据:这里主要介绍写数据的部分,即Mems ...
- vue学习12-表单属性绑定
1 <!DOCTYPE html> 2 <html lang='en'> 3 <head> 4 <meta charset='UTF-8'> 5 < ...
- 哪些是GET请求,哪些是POST请求
GET请求: 1,form标签 method=get 2,a标签 3,link标签引入css 4,Script标签引入js文件 5,img标签引入图片 6,iframe引入html页面 7,在浏览器地 ...
- 集合框架-工具类-Collections-排序
1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...
- python内置re模块全面实战
目录 一:取消转义 二:python内置模块之re模块 三:常用方法 findall search match 简便 四:常用方法 finditer 匹配文件多情况 五:切割 替换 内置模块 六:分组 ...