TCP/IP是一组用于实现网络互联的通信协议,通常称为TCP/IP协议族。包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等。

一、TCP/IP模型将协议分为了4层

  1. 应用层——为用户提供所需的各种服务,如FTP、Telnet、DNS、SMTP等
  2. 传输层——为应用层实体提供端到端的通信功能,保证数据包按序传送以及数据的完整性。TCP、UDP等
    • 面向连接的传输控制协议(Transmission Controt Protocol, TCP)——可靠的、通过”三次握手“来连接的数据传输服务
    • 面向无连接的用户数据报协议(Cuser Datagram Protocol, UDP)——不保证可靠的、无连接的数据传输服务
  3. 网际互联层——主要解决主机到主机的通信路由问题,赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。IP、IGMP、ICMP等
    • 网际协议(Internet Protocol, IP)——提供一个可靠、无连接的数据报传递服务
    • 互联网组管理协议(Internet Group Management Protocol, IGMP)
    • 互联网控制报文协议(Internet Control Message Protocal, ICMP)
  4. 网络接口层——监视数据在主机和网络之间的交换[数据链路层和物理层]
    • 地址解析协议(Address Resolution Protocol, ARP, 在数据链路层)

二、TCP/IP基本知识

网络主机间能够互相通信所需要共同遵守的规则就是网络协议,普遍使用TCP/IP网络协议,此外还需要正确配置IP地址、子网掩码等网络参数。

1)TCP/IP协议

TCP传输控制,是传输层的协议,它提供了可靠的数据报传输服务

IP 网际互联,是网际互联层的协议,用来提供网络中的统一编址和路由问题

2)IP地址

在Internet上,个主机通过TCP/IP协议发送和接收数据报,各个数据报根据其目的主机的IP地址来进行互联网络中的路由选择。

IP地址是互联网上网络接口的唯一标识,给网络中主机提供唯一的网络地址。IPv4是由一个32位的二进数字组成,点分十进制表示;IP地址采用两级结构,主机所属的网络+主机,网络地址表示主机的网段,同一网段中的所有主机拥有相同的网络地址,网络地址是统一分配的,目的是为了保证网络地址的全球唯一性;主机地址表示某个网段中的一个具体的网络接口,主机地址由各个网络的系统管理员分配。

IP地址分为A、B、C、D、E五类,A、B、C三类在全球范围内统一分配,D、E为特殊网址,由高位字节标示。另外还有 一种专用IP地址,这类地址只在专用网络(内网)中使用。如:10.0.0.1~10.255.255.254、172.26.0.1~172.32.255.254、192.168.0.1~192.168.255.254,我靠中心和圆山的王都在内网网段!

地址类型   高位字节 最高字节范围 网络地址位数(可支持网络数) 主机ID位数(每个网络支持的主机数)
A 0 1~126 7位(2^7-2=126) 24位(16777214)
B 10 128~191 14位(16384) 16位(65534)
C 110 192~223 21位(2097152) 8位(254)

3)子网与子网掩码

划分子网是指把主机地址中的一部分借用为网络地址,这样可以把一个较大的网络划分为多个较小的网络,这些较小的网络即为子网,子网是基于一组IP地址的逻辑网络。

为了确定网络地址和主机地址就必须借助子网掩码,子网掩码码是一个32为地址,其作用是用于屏蔽IP地址的一部分以区分网络地址和主机地址,指明32位IP地址中哪些位为网络地址,哪些位为主机地址。TCP/IP协议利用子网掩码判断目标主机是位于本地网络还是远程网络。A、B、C三类网络的子网掩码:

类别 二进制值 十进制值
A 11111111.00000000.00000000.00000000 255.0.0.0
B 11111111.11111111.00000000.00000000 255.255.0.0
C 11111111.11111111.11111111.00000000 255.255.255.0

4)端口

数据报通过IP到带目的主机后,由于多个应用程序在同一主机上运行,目的主机必须通过端口来确定应该把数据报传送给主机中哪个程序。端口号可以分为三类:

公认端口(WellKnownPorts)0~1023,它们紧密绑定(binding)于一些服务。

注册端口(RegisteredPorts)1024~49151,他们松散的banding于一些服务。许多系统处理动态端口从1024开始

动态和/或私有端口(Dynamicand/orPrivatePorts)49125~65535,理论上,不应为服务分配这些端口,但也有例外。

5)网关地址

主机的IP地址和子网掩码设置后,同一网段内的机器就可以通信了,而处于不同网段的主机则必须通过网关才能进行通信,把数据包转发给它的网关,再由网关转发到相应的网络。网关是一个网络和另一个网络间的入口地址(IP),为了实现与不同网段的主机进行通信,必须为主机设置网关地址,它一定是同网段主机或根路由器的IP地址。

6)域名

因为十进制点分不容易记忆,所以有了域名,cn为中国。

7)DNS服务器地址

解析域名包括从域名到IP地址映射的正向解析和从IP到域名映射的反向解析。DNS采用层次化的分布式数据结构,每个DNS服务器只负责其管辖区域中的主机域名和IP地址的映射表。

3、三次握手、四次挥手

TCP/IP网络基础知识的更多相关文章

  1. TCP/IP_网络基础知识

    今天看到k8s的网络,顿感网络知识不是特别扎实,立马回头补一下Tcp-ip知识,顺便记录下学习的过程: 计算机与网络发展的7个阶段: 批处理时代(计算机按照顺序处理,50年代)->分时系统时代( ...

  2. TCP/IP协议栈基础知识

    设计思想 把一个复杂的事物进行分层划分,使得每个部分变得相对简单 分层模型 OSI分为7层模型   tcp/ip分为四层模型 应用层(Application) 传输层(Transport) 网络层(I ...

  3. 【RL-TCPnet网络教程】第12章 TCP传输控制协议基础知识

    第12章      TCP传输控制协议基础知识 本章节为大家讲解TCP(Transmission Control Protocol,传输控制协议),通过本章节的学习,需要大家对TCP有个基本的认识,方 ...

  4. Linux学习(1)- TCP/IP网络协议基础

    Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...

  5. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

  6. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  7. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  8. IP地址基础知识

    IP地址基础知识 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 一 OSI/RM模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 二 TCP/IP模型 数据链路层( ...

  9. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

随机推荐

  1. opencv::图像矩(Image Moments)

    矩的概念介绍 1.几何矩 2.中心距 3.中心归一化距 4.图像中心Center(x0, y0) 计算矩 moments( InputArray array, // 输入数据 bool binaryI ...

  2. sudo权限造成的故障

    公司服务器故障: [chengsir@yinwucheng ~]$ sudo mkdir /opt/nginx sudo: /usr/bin/sudo must be owned by uid 0 a ...

  3. QCustomplot使用分享(九) 绘制图表-多功能游标

    目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.添加游标 4.监测移动 5.移动游标 6.其他函数 四.测试方式 1.测试工程 2.测试文件 3.测试代码 五.相关文章 六.总 ...

  4. 查看java内存情况的几个常用命令

    java 命令简单查看jvm内存使用状况 jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序, ...

  5. 百万年薪python之路 -- 推导式

    2.1列表推导式 首先我们先看一下这样的代码,给出一个列表,通过循环,想列表中添加1~10: li = [] for i in range(1,11): li.append(i) print(li) ...

  6. Leetcode(2)两数相加

    Leetcode(2)两数相加 [题目表述]: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两 ...

  7. Beetlex服务框架之Webapi版本访问控制

    在应用服务中API更新是很普遍的事情,为了服务良好地运作很多时候需要新旧版本同时兼容:为了应对这一系列的需求FastHttpApi在新版中强化了Url重写机制来支持API访问版本控制,由原来固定的重写 ...

  8. JAVA eclipse 问题汇总(持续更新)

    解决eclipse中文字很小 新下载的eclipse4.2.1版本,显示中文字体很小,但是英文比较正常.网上查看要更改字体大小,但是更改后英文也变大了,不是想要的结果.window – prefere ...

  9. C++ 11标准

    C++11,也称为C++0x.为目前C++编程语言的最新正式标准(ISO/IEC 14882:2011).它将取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:19 ...

  10. SpringBoot与MybatisPlus3.X整合之动态表名 SQL 解析器(七)

    pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...