tcp、netstat、dns

Easter79
• 阅读 684

传输层协议与应用

掌握TCP的封装和工作原理

掌握UDP的封装和工作原理

了解常用的TCP和UDP端口号

对TCP和UDP首部能够进行分析

tcp、netstat、dns

传输层的作用

IP层提供点到点的连接

传输层提供端到端的连接

tcp、netstat、dns

传输层的协议

TCP(Transmission Control Protocol)

  • 传输控制协议
  • 可靠的、面向连接的协议
  • 传输效率低

UDP(User Datagram Protocol)

  • 用户数据报协议
  • 不可靠的、无连接的服务
  • 传输效率高

TCP的工作原理

TCP的封装格式

连接与断开

流量控制

拥塞控制

差错控制

计时器

TCP的封装格式

| 0 -----------------------------------------------15 | 16 ------------------------------------------------ 31 |

源端口号

目标端口号

32位序列号

32位确认号

4位首部长度

保留  (6位)

U  R  G

A  C  K

P  S  H

R  S  T

S  Y  N

F  I  N

16位窗口大小

16位校验和

16位紧急指针

可选项

数据

发送TCP进程对应的端口号

目标端接收进

0 ~ 232-1范围内,数据段标记,用于到目的端对到达包的重组

0 ~ 232-1范围内,对发送端的确认信息,告诉发送端这个序号之前的数据段都收到了

紧急指针有效位,与16位紧急指针配合使用

确认序列号有效位,表明该数据包包含确认信息

通知接收端立即将数据提交给用户进程,不在缓存中停留,等待更多的数据

为1时,请求建立TCP连接

为1时,请求建立连接

为1时,数据发送完毕,请求断开连接

滑动窗口的大小,指明本地可接收数据的字节数

TCP的连接-三次握手

tcp、netstat、dns

TCP的四次断开

tcp、netstat、dns

TCP的流控机制-滑动窗口

tcp、netstat、dns

a.通报窗口大小为3

b.发送窗口大小为3

c.缓冲区满

d.应用程序读取了1个数据段

e.通报窗口大小为1

f.实际发送窗口大小变为1

TCP的流控机制-拥塞控制2-1

tcp、netstat、dns

TCP的流控机制-拥塞控制2-2

tcp、netstat、dns

TCP的差错控制

TCP差错控制的3种方式

  • 校验和

  • 确认

  • 受损伤的数据段

  • 丢失的数据段

  • 重复的数据段

  • 失序的数据段

  • 确认的丢失

  • 超时

TCP 的计时器 4 - 1

重传计时器-为了控制丢失的数据段

tcp、netstat、dns

TCP 的计时器 4 - 2

tcp、netstat、dns

TCP 的计时器 4 - 3

保活计时器-防止两个TCP之间的连接长时间的空闲

tcp、netstat、dns

TCP 的计时器 4 - 4

时间等待计时器-连接终止期间使用的

在发送了最后一个ACK后,不立即关闭连接,而是等待一段时间,保证能接收到重复的FIN数据段。

tcp、netstat、dns

TCP 的应用

端口

协议

说明

21

FTP

文件传输协议,用于上传、下载

23

Telnet

用于远程登录,通过连接目标计算机的这一端口,得到验证后可以远程控制管理目标计算机

25

SMTP

简单邮件传输协议,用于发送邮件

53

DNS

域名服务,当用户输入网站的名称后,由 DNS 负责将它解析成 IP 地址,这个过程中用到的端口号是 53

80

HTTP

超文本传输协议,通过 HTTP 实现网络上超文本的传输

阶段总结

TCP的封装格式

TCP的连接与断开

流控机制

拥塞控制

差错控制

计时器

UDP 的封装格式

|0-------------------------------------------------------15|16-----------------------------------------------------31|

16 位源端口号

16 位目标端口号

16 位 UDP 长度

16 位 UDP 校验和

数据

发送端的UDP进程端口号

接收端的UDP进程端口号

包含数据的长度,可以算出数据的结束位置

UDP的差错控制(可选)

UDP 的使用

端口

协议

说明

69

TFTP

简单文件传输协议

53

DNS

域名服务

123

NTP

网络时间协议

111

RPC

远程过程调用

DNS服务器支持TCP和UDP两种协议的查询方式,而且端口都是53。大多数的查询都是UDP查询的,一般需要TCP查询的有两种情况:

  • ①当查询数据较大以至于产生了数据分段,这时,需要利用TCP的分片能力来进行数据传输。
  • ②当主(master)服务器和辅(slave)服务器之间数据同步通信的时候。

UDP 的流控和差错控制

UDP没有流控机制

UDP只有校验和来提供差错控制

需要上层协议来提供差错控制:例如TFTP协议

tcp、netstat、dns

TCP/IP 协议栈

tcp、netstat、dns

本章总结

tcp、netstat、dns

阶段练习

在TCP中如何防止数据段的丢失?

如果接收方的缓存已经满了,接收方会向发送发发送什么样的确认信息?发送方收到后会怎么处理?

DNS

http://www.baidu.com

浏览一个网站

域名需要解析为IP

解析由DNS服务器完成

解析顺序:

1、找本地文件

  • linux

/etc/hosts/

  • Windows

C:\Windows\System32\drivers\etc\hosts

2、本地DNS缓存

3、网络上的DNS服务器

Linux的DNS服务器指定vim /etc/reslov.conf

nameserver 114.114.114.114

:x

应用层

http

传输层

TCP

80

53455

网络层

IP

192.168.

数据链路层

MAC

aa

bb

物理层

tcp、netstat、dns

tcp、netstat、dns

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
34.TCP取样器
阅读文本大概需要3分钟。1、TCP取样器的作用   TCP取样器作用就是通过TCP/IP协议来连接服务器,然后发送数据和接收数据。2、TCP取样器详解!(https://oscimg.oschina.net/oscnet/32a9b19ba1db00f321d22a0f33bcfb68a0d.png)TCPClien
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k