OSI模型与TCP/IP协议栈

     OSI模型:

    使用OSI模型的意义:

     简化教学
     加快发展速度
     确保技术的互操作性
     简化模块化设计
     标准化接口
     降低复杂性

   OSI 网络模型分层

    
————————-   |
7      应用层           |         网络进程访问层:为应用程序进程提供网络服务
————————–
6      表示层           |          数据表示:   
————————–
5      会话层           |          端连接:  建立、管理和终止在应用程序的会话
————————-
4       传输层          |         传输问题:确保数据传输的可靠性(负责网段–> 可靠性)
————————–
3        网络层         |         数据传输:1路由数据包2.选择传递数据最佳路径3.支持逻辑寻址(数据包–> 路由)
————————–
2       数据链路层    |         访问介质:定义了如何格式化数据以便镜像传输以及如何控制对网络访问(帧–>mask) 
————————–
1       物理层          |           二进制传输 :为启动、维护及关闭物理链路定义了电气等规范和功能规范(位–》二进制传输)
————————-

数据在网络流动的方向如图:

        发生方:数据封装

OSI模型与TCP/IP协议栈

        接收方:数据解封

OSI模型与TCP/IP协议栈

     关于PDU和PUD在OSI各层的不同称呼:
     PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
    物理层的PDU是数据位bit
    数据链路层的PDU是数据帧frame
    网络层的PDU是数据包packet
    传输层的PDU是数据段segment
    其他更高层次的PDU是消息message

    TCP/IP 协议栈

    最早发源于美国国防部(缩写为DoD)的因特网的前身ARPA网项目,1983年1月1日,TCP/IP取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护
    1.TCP/IP 协议栈 共定义了四层
TCP/IP协议栈

—————————-

1.    应用层              |

—————————–
2.    传输层              |      
—————————–
3.    Internet层        |
—————————–
4.    网络访问层       |
———————- ——

   2. Internet 协议特征
运行于OSI 网络层
面向无连接的协议
独立处理数据包
分层编址
尽力而为传输
无数据恢复功能

   3. 传输层  tcp和UTP的特性:

    TCP的特性:

TCP特性
a.工作在传输层面向连接协议
b.全双工协议
c.半关闭
d.错误检查
e.将数据打包成段,排序
f.确认机制
g.数据恢复,重传

h.流量控制,滑动窗口
i.拥塞控制,慢启动和拥塞避免算法

    关于TCP包头图:
    OSI模型与TCP/IP协议栈

源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0 开始
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
ACK:表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
窗口大小:表示现在充许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量
校验和:提供额外的可靠性
紧急指针:标记紧急数据在数据字段中的位置
选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节
常见选项:

    关于端口:

    a.0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久

分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
    b.1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer),1521/tcp(oracle),
3306/tcp(mysql),11211/tcp/udp(memcached)
49152-65535:动态端口或私有端口,客户端程序随机使用的端口
其范围的定义:/proc/sys/net/ipv4/ip_local_port_range


    TCP/IP协议栈和ISO参考模型的分层的对应关系如图:

    OSI模型与TCP/IP协议栈    

原创文章,作者:m25Chronos,如若转载,请注明出处:http://www.178linux.com/85138

(0)
m25Chronosm25Chronos
上一篇 2017-08-20
下一篇 2017-08-20

相关推荐

  • 网卡别名及多网卡配置

    网卡别名 对于要在不同网段环境中使用的设备有很大的帮助。     要使用网卡别名首先要关闭NetworkManager这个服务,防止在后续操作中引起不必要的冲突。 [root@laodeng6 ~]# chkconfig NetworkManager off [root@laod…

    Linux干货 2016-09-06
  • 网络基础命令与配置文件地址

    centos6查看网卡dmesg | grep -i ethethtool -i eth0卸载网卡驱动modprobe -r e1000rmmod e1000装载网卡驱动modprobe e1000网络配置,静态指定system-config-network-tui 字符界面式网络配置ip addr add IP地址 via 网关IP地址动态分配在/etc/…

    2017-09-09
  • 第二周博客作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 Linux文件管理类命令有cp、mv、rm 1、cp命令:copy files and directories 使用方法: 单源复制cp [OPTION]… [-T] SOURCE DEST1)如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中2)如果…

    Linux干货 2016-12-13
  • Linux终端的类型

    Linux终端可以分为如下几种类型    1、物理终端:是指通过键盘显示器直接连接到主机的方式,我们也称之为console端。    2、虚拟终端:是利用软件的方式模拟实现类似物理终端的访问方式,通常Linux内核开启6个虚拟终端,分别使用Ctrl+Alt+F1~F6实现不同tty虚拟终端之间的切换,供多用户或者多任务…

    Linux干货 2016-10-29
  • 【招聘需求】高级运维工程师/上海虹口区/待遇20k左右

    上海虹口区/待遇20k左右 有意向者发简历至@管家邮箱 邮件名是:[求职]Net-姓名-花名-工作年限 岗位职责:1、降低技术壁垒,建设运维工具、运维平台,实现运维自动化,包括 运维自动化、配置管理中心等。2、具备前瞻性,带领运维技术团队完成业务支撑,负责定位、分析、跟踪和相协调处理重大事故,使之对业务影响降至最低。3、技术支持、培训、知识库建设。4、运维接…

    Linux干货 2015-03-12
  • 磁盘管理的补充及扩展

    磁盘管理的补充及扩展 挂载点和/etc/fstab(配置文件) 使用mount命令挂载为临时挂载开机重启后就会自动卸载,为了永久挂载必须写在配置文件中! 配置文件系统体系  被mount、fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount  -a 命令挂载/etc/fstab中的所有文件系…

    Linux干货 2016-08-30