Linux - TCP/IP网络协议基础
1.0 Tcp / IP 背景介绍
上世纪70年代,随着计算机的发展,人们意识到如果想要发挥计算机的更大作用,就要讲世界各地的计算机连接起来。
但是简单的连接时不够的,因为计算机之间无法沟通。因此设计一种通用的交流语言时必不可少的,所以TCP/IP协议就诞生了。
TCP/IP是 传输协议和网络协议的简称,定义了电子设备如何接入互联网,以及数据如何在它们之间传输的标准。
TCP/IP不是一个协议,是一个协议族的统称。包含了IP协议,ICMP协议,TCP协议,以及HTTP,FTP,POP3协议等。网络中的计算机都是通过这种协议来互联。
网络协议栈架构

IP地址
网络上的节点都有一个独立的IP地址,通常IP地址是由32bit的数字,被.分成4组。有了IP地址就可以连接互联网中的另一个计算机。
在Linux系统中,使用ifconfig -a来查看自己的IP地址
域名
用12位组成的IP很难记住,在实际应用的时候,一般不用记住IP地址,互联网给每一个IP起了一个别名,习惯上称作域名。
域名和计算机的IP地址相对应,把这种对应关系存储在域名系统DNS中,用户只需记住域名就可以和指定的计算机进行通信了。
常见的域名包括com net 和 org三中顶级域名后缀,除此之外每个国家有自己的专属域名后缀(我国的域名后缀为cn)
可以使用nslookup或者ping来查看域名对应的IP
MAC地址
MAC地址也叫做物理地址/硬件地址,用来定义互联网中设备的位置。
在TCP/IP层模型中,网络层管理IP地址,数据链路层负责MAC地址。因此每个网络位置会有一个专属的IP地址,每个主机会有一个专属于它MAC地址。
端口号
IP地址是用来发现和查找网络中的地址,不同的程序之间利用端口来识别。一个IP端口可以有65536个。
服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个 TCP/IP 实现来说,SMTP(简单邮件传输协议)服务器的 TCP 端口号都是 25,FTP(文件传输协议)服务器的 TCP 端口号都是 21,TFTP(简单文件传输协议)服务器的 UDP 端口号都是 69。任何 TCP/IP 实现所提供的服务都用众所周知的 1-1023 之间的端口号。这些人们所熟知的端口号由 Internet 端口号分配机构(Internet Assigned Numbers Authority, IANA)来管理。
常用协议对应端口号:
- SSH 22
- FTP 20 和 21
- Telnet 23
- SMTP 25
- TFTP 69
- HTTP 80
- SNMP 161
- Ping 使用ICMP,无具体端口号
封装和分用
封装:当应用程序发送数据的时候,数据在协议层次中 自顶向下通过每一层,每一层都会对数据增加一些首部或者尾部信息,这样的信息称之为协议数据单元(PDU),在分层协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。
- 物理层(一层)PDU指数据位(Bit)
- 数据链路层(二层)PDU指数据帧(Frame)
- 网络层(三层)PDU指数据包(Packet)
- 传输层(四层)PDU指数据段(Segment)
- 第五层以上为数据(data)

分用:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程正好相反。
Linux - TCP/IP网络协议基础的更多相关文章
- Linux学习(1)- TCP/IP网络协议基础
Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...
- TCP/IP网络协议基础
实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...
- TCP/IP网络协议基础知识集锦[转]
引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...
- TCP/IP网络协议基础入门及实验
TCP/IP简介 提到网络协议栈结构,最著名的当属 OSI 七层模型,但是 TCP/IP 协议族的结构则稍有不同,它们之间的层次结构有如图对应关系: 可见 TCP/IP 被分为 4 层,每层承担的任务 ...
- 对TCP/IP网络协议的深入浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- 转:对TCP/IP网络协议的深入浅出归纳
转自:http://blog.jobbole.com/74795/ 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没 ...
- 对TCP/IP网络协议的深入浅出归纳(转)
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- TCP/IP网络协议的通俗理解,SOCKET,HTTP,SOAP
TCP/IP,HTTP,SOAP等协议之区别 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想 ...
- TCP/IP网络协议
OSI七层模型 OSI采用了分层的结构化技术,共分七层,物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP模型 OSI模型比较复杂且学术化,所以我们实际使用的TCP/IP模型, ...
随机推荐
- 事务配置在applicationContext.xml文件中不起作用,控制不了异常回滚
一.博主在学习到整合ssm框架的时候,遇到一个奇葩的问题就是将 事务的控制 ,写在在applicationContext.xml文件中不起作用,在事务控制的方法中,即使出现了异常,但是事务不会回滚的坑 ...
- shell 如何避免误删目录
1.变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行 ...
- spark教程(18)-sparkSQL 自定义函数
sparkSQL 也允许用户自定义函数,包括 UDF.UDAF,但没有 UDTF 官方 API class pyspark.sql.UDFRegistration(sparkSession)[sour ...
- 代理、反射、注解、hook
代理 通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,扩展目标对象的功能. 代理对象拦截真实对象的方法调用,在真实对象调用前/后实现自己的逻辑调用 这里使用到编程中的一个思想:不 ...
- CentOS 7安装Maven
echo "安装Java环境,先安装JDK" yum -y install java-openjdk echo "切换到/usr/local/src下载目录" ...
- 【spring Boot】spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案
前言 =========================================== 初步接触Spring Boot ===================================== ...
- java线程的方便调用方式
一直用java的线程,总感觉写起来阅读或书写起来不是方便,改进之. 实现类: public class Task<R> { private ExecutorService executor ...
- Java多线程(二):Thread类
Thread类的实例方法 start() start方法内部会调用方法start方法启动一个线程,该线程返回start方法,同时Java虚拟机调用native start0启动另一个线程调用run方法 ...
- 04docker容器操作
操作Docker container 容器是镜像的一个运行实例,镜像是静态的只读文件,容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态 1:新建一个容器 ubuntu@ubuntu: ...
- poj 3320 复习一下尺取法
尺取法(two point)的思想不难,简单来说就是以下三步: 1.对r point在满足题意的情况下不断向右延伸 2.对l point前移一步 3. 回到1 two point 对连续区间的问题求 ...