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模型, ...
随机推荐
- new与malloc有什么区别
转自http://www.cnblogs.com/QG-whz/p/5140930.html 前言 几个星期前去面试C++研发的实习岗位,面试官问了个问题: new与malloc有什么区别? 这是个老 ...
- 基于Opencv快速实现人脸识别(完整版)
无耻收藏网页链接: 基于OpenCV快速实现人脸识别:https://blog.csdn.net/beyond9305/article/details/92844258 基于Opencv快速实现人脸识 ...
- Python 3.8.0 正式版发布,新特性初体验 全面介绍
Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...
- 如何编写正确且高效的 OpenResty 应用
本文内容,由我在 OpenResty Con 2018 上的同名演讲的演讲稿整理而来. PPT 可以在 这里 下载,因为内容比较多,我就不在这里一张张贴出来了.有些内容需要结合 PPT 才能理解,请多 ...
- T100错误信息提示方式
例如: IF g_browser_cnt = THEN INITIALIZE g_errparam TO NULL LET g_errparam.extend = "" LET g ...
- 技能节-AI人脸识别
我们收到技能节项目的通知是在两周之前,项目要求做个人脸评分系统. 两周时间写一个"人脸评分系统",好像时间比较紧了,还好我们完成了~这个项目是将摄像头捕获到的包含人脸的图像传输到百 ...
- supersocket特征
SuperSocket, 可扩展的 Socket 服务器框架 SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Sock ...
- 【原创】大叔问题定位分享(35)spring中session失效时间
spring项目中将sessionid对应的cookie过期时间设置很长,但是实际session还是在半个小时后失效,跟了一下代码,spring中session实现接口为 org.springfram ...
- java实现spark常用算子之Union
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...
- 可以用for循环直接删除ArrayList的特定元素吗?可能会出现什么问题?怎样解决?
for循环直接删除ArrayList中的特定元素是错的,不同的for循环会发生不同的错误,泛型for会抛出 ConcurrentModificationException,普通的for想要删除集合中重 ...