TCP协议学习记录

TCP协议学习记录

简述

对TCP有诸多疑惑的地方:
1、TCP和socket的关系
2、TCP客户端和服务端如何区分
3、TCP连接的两端,端口号需要一致吗

什么是socket

一种编程抽象
编写程序时,利用socket可以使用TCP;假设现在已经将TCP协议的规范用代码编写好了,只需要去使用它,就可以通过socket去使用;

TCP和socket的关系

socket为应用程序提供了一种使用TCP和其他网络协议进行通信的方式

TCP的客户端和服务端是基于什么来决定

tcp的连接需要由一方来发起,发起方需要知道对方的IP地址和端口号。
同时,对端也需要能够接受,这是一个等待的过程(监听)。
发起方为客户端,等待方为服务端。

假如有两个设备,建立了TCP连接,可以两个同时都是客户端和服务端吗

TCP协议的通信需要预先建立一个通信连接。
三次握手建立连接,四次挥手断开连接。
三次握手:
1、客户端→服务端:SYN
2、服务端→客户端:SYN/ACK
3、客户端→服务端:ACK 然后就建立好连接。
四次挥手:
1、A端→B端:FIN
2、B端→A端:ACK
3、B端→A端:FIN/ACK
4、A端→B端:ACK
断开连接的发起方既可以是客户端,也可以是服务端。

连接的建立,双方都确认了对方的端口号和IP地址。端口号是设备用来区分不同通信进程的。
一个设备的通信进程建立时,只能是客户端或者服务端。
于是
只需要建立两个通信进程,一个是以客户端身份建立,一个是以服务端身份建立即可。
当然,客户端和服务端的概念其实只在建立时有,建立好以后双方并无差别。所以我这是什么傻问题。

TCP连接的两端,端口号需要一致吗

不需要
端口号是设备用来区分本地通信进程的,也就是收到一个TCP报文,通过查看它的目的端口号,来得知它属于哪一个通信进程。

但还是有疑惑的地方,就是关于程序进程、通信进程、socket、TCP,这些所有之间的联系和区分,这应该要等我深入学习以后才能理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab无基础快速上手1(遗传算法框架)

本文用经典遗传算法框架模板,对matlab新手友好,快速上手看懂matlab代码,快速应用实践,源代码在文末给出。 基本原理: 遗传算法(Genetic Algorithm,GA)是一种受生物学启发的优化算法…

在Gtiee搭建仓库传代码/多人开发/个人代码备份---git同步---TortoiseGit+TortoiseSVN

文章目录 前言1.安装必要软件2. Gitee建立新仓库git同步2.1 Gitee建立新仓库2.2 Gitee仓库基本配置2.3 Git方式进行同步 3. TortoiseGitTortoiseSVN常用开发方式3.1 秘钥相关3.2 TortoiseGit拉取代码TortoiseGit提交代码 4. 其他功能探索总结 前言 正常企业的大型项目都会使用…

TR5 - Transformer的位置编码

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 前言什么是位置编码1. 定义2. 三角函数3. 位置编码公式4. 位置编码示例 可视化理解位置编码1. 代码实现2. 观察不同位置对应的曲线3. 整句话的位置编码可…

排序 “贰” 之选择排序

目录 ​编辑 1. 选择排序基本思想 2. 直接选择排序 2.1 实现步骤 2.2 代码示例 2.3 直接选择排序的特性总结 3. 堆排序 3.1 实现步骤 3.2 代码示例 3.3 堆排序的特性总结 1. 选择排序基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个…

Guitar Pro简谱输入方法 Guitar Pro简谱音高怎么调整,Guitar Pro功能介绍

一、新版本特性概览 Guitar Pro v8.1.1 Build 17在保留了前版本强大功能的基础上,进一步优化了用户体验和功能性能。新版本主要更新包括以下几个方面: 界面优化:新版界面更加简洁美观,操作更加便捷,即使是初学者也能快…

aixcoder介绍

最近了解了一下国内开源的aixcoder,代码自动补全的工具,可以理解为国内版开源的的copilot。 一开始公司给提供了一个代码自动补全的插件,这几天发现原来用的就是aixcoder,所以专门了解了一下。。 介绍 aiXcoder 是一款基于深度…

在线拍卖系统,基于SpringBoot+Vue+MySql开发的在线拍卖系统设计和实现

目录 一. 系统介绍 二. 功能模块 2.1. 管理员功能模块 2.2. 用户功能模块 2.3. 前台首页功能模块 2.4. 部分代码实现 一. 系统介绍 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系…

Docker - 简介

原文地址,使用效果更佳! Docker - 简介 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-introduce.html Docker是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 D…

vulfocus靶场couchdb 权限绕过 (CVE-2017-12635)

Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。应用广泛,如BBC用在其动态内容展示平台&…

串口RS485

1.原理 全双工:在同一时刻可以同时进行数据的接收和数据的发送,两者互不影响 半双工:在同一时刻只能进行数据的接收或者数据的发送,两者不能同时进行 差分信号幅值相同,相位相反,有更强的抗干扰能力。 干…

vlan的学习笔记1

vlan: 1.一般情况下:以下概念意思等同: 一个vlan一个广播域 一个网段 一个子网 2.一般情况下: (1)相同vlan之间可以直接通信,不同vlan之间不能直接通信! (2)vlan技术属于二层技术&…

C语言中, 文件包含处理,#include< > 与 #include ““的区别

文件包含处理 指一个源文件可以将另外一个文件的全部内容包含进来 &#xff23;语言提供了#include命令用来实现文件包含的操作 #include< > 与 #include ""的区别 <> 表示系统直接按系统指定的目录检索 "" 表示系统先在 "" 指定…

Rust序列化和反序列化

Rust 编写python 模块 必备库 docker 启动 nginx 服务 NGINX 反向代理配置

MySQL下载与安装

文章目录 1&#xff1a;MySQL下载与安装2&#xff1a;配置环境变量3&#xff1a;验证是否安装成功 1&#xff1a;MySQL下载与安装 打开MySQL官网&#xff0c;MySQL 下载链接选择合适的版本和操作系统&#xff0c;页面跳转之后选择No thanks, just start my download.等待下载即…

linux中/etc/hosts文件的内容和功能

更准确的说是主机和ip地址映射绑定配置文件 用于主机名解析成ip地址的 转换配置 效果&#xff1a; 这个东西是局域网下面的解析&#xff0c;老师说是本地局域网解析 windows对应的就是

笔试狂刷--Day2(模拟高精度算法)

大家好,我是LvZi,今天带来笔试狂刷--Day2(模拟高精度算法) 一.二进制求和 题目链接:二进制求和 分析: 代码实现: class Solution {public String addBinary(String a, String b) {int c1 a.length() - 1, c2 b.length() - 1, t 0;StringBuffer ret new StringBuffer()…

腾讯云免费ssl证书申请与宝塔手动部署

1.在我的证书 - SSL 证书 - 控制台 (tencent.com)页面点击“申请免费证书” 2.在申请页面填写域名、邮箱&#xff0c;对于其中“验证方式”&#xff0c;如果服务器是部署在腾讯云的话&#xff0c;可以选“自动DNS” 3.等待审核通过之后&#xff0c;在我的证书 - SSL 证书 - 控…

4.9 启动系统任务❤❤❤

有一些特殊的任务需要在系统启动时执行&#xff0c;例如配置文件加载、数据库初始化等操作。 Spring Boot对此提供了两种解决方案&#xff1a;CommandLineRunner和ApplicationRunner。 CommandLineRunner和ApplicationRunner基本一致&#xff0c;差别主要体现在参数上。 1. Co…

FastChat启动与部署通义千问大模型

FastChat简介 FastChat is an open platform for training, serving, and evaluating large language model based chatbots. FastChat powers Chatbot Arena, serving over 10 million chat requests for 70 LLMs.Chatbot Arena has collected over 500K human votes from sid…

[SWPUCTF 2022 新生赛]android

安卓题第一次写 先解压&#xff0c;改apk后缀为zip再次解压用dex2jar反编译得到jar文件&#xff0c;再用jd-gui查看即可得到flag