CSInternet11
本篇讲述了TCP中的半连接和全连接队列、网络编程面试题,以及如何基于UDP实现TCP。 半连接和全连接队列网络编程面试题如何基于UDP实现TCP
CSInternet10
本篇讲述TCP粘包拆包、TCP异常、TCP保活机制、TCP Socket的机制。 粘包拆包 原文链接:https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/Netty%20%E6%A0%B8%E5%BF%83%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90%E4%B8%8E%20RPC%20%E5%AE%9E%E8%B7%B5-%E5%AE%8C/06%20%20%E7%B2%98%E5%8C%85%E6%8B%86%E5%8C%85%E9%97%AE%E9%A2%98%EF%BC%9A%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E4%B8%80%E4%B8%AA%E5%AE%8C%E6%95%B4%E7%9A%84%E7%BD%91%E7%BB%9C%E5%8C%85%EF%BC%9F.md 为什么有拆包/粘包TCP...
CSInternet09
本篇讲述TCP建立连接后数据传输过程中的规则和优化方法,包括TCP重传、滑动窗口、流量控制、拥塞控制等内容。 滑动窗口为什么需要滑动窗口?解决什么问题?如果采用停等机制(发送一个数据包后必须等待确认才能发送下一个),虽然简单可靠,但网络利用率极低,特别是在高延迟网络中。 为解决这个问题,TCP 引入了窗口这个概念。即使在往返时间较长的情况下,它也不会降低网络通信的效率。 那么有了窗口,就可以指定窗口大小,窗口大小就是指无需等待确认应答,而可以继续发送数据的最大值。 窗口的实现实际上是操作系统开辟的一个缓存空间,发送方主机在等到确认应答返回之前,必须在缓冲区中保留已发送的数据。如果按期收到确认应答,此时数据就可以从缓存区清除。 图中的 ACK 600 确认应答报文丢失,也没关系,因为可以通过下一个确认应答进行确认,只要发送方收到了 ACK 700 确认应答,就意味着 700...
CSInternet08
欢迎回来!本篇我们开始详细地讨论TCP协议,包括讲解TCP的头部格式,与TCP握手和挥手的流程,争取做到一网打尽! 认识TCP首先不得不评鉴的一环是TCP的头部格式。在学习时,可以牢牢围绕上篇讲述的TCP的定义(面向连接、可靠、基于字节流)进行理解——因为所有的实现都是围绕这几个用途落地的。 序列号(seq):在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机。每发送一次数据,就”累加”一次该”数据字节数”的大小。用来解决网络包乱序问题。 确认应答号(ack,注意与下文控制位ACK区分):指下一次”期望”收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。用来解决丢包的问题。一般来说,如果连接正常,那么客户端上一次传输中的seq值即为本次服务端传输中的ack值+1。 控制位 ACK:该位为 1 时,”确认应答”的字段变为有效,TCP规定除了最初建立连接的的 SYN 包之外该位必须设置为 1。 RST:该位为 1 时,表示TCP连接中出现异常必须强制断开连接。 SYN:该位为 1...
CSInternet07
传输层概述之前课程所介绍的计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信;但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。 如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。 运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。 根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP,这两种协议就是本章要讨论的主要内容。 通信、端口、IP复用/分用也许你知道IP首部中有一个协议字段,用来标识网络层(IP)的上一层所采用的是哪一种传输层协议。根据这个字段的协议号,就可以识别IP传输的数据部分究竟是 TCP的内容,还是UDP的内容。同样,传输层的 TCP和...
CSInternet06
...
FeatureEngineering05
引言欢迎来到特征工程项目,这个项目是为 House Prices - Advanced Regression Techniques 竞赛准备的!本次竞赛使用的数据与在 [特征工程](Feature Engineering) 课程练习中使用的数据几乎相同。我们将把您之前完成的工作整合成一个完整的项目,您可以在此基础上加入自己的想法。 第一步 - 准备工作导入和配置我们首先导入在练习中使用的包,并设置一些笔记本默认值: 123456789101112131415161718192021222324252627282930313233import osimport warningsfrom pathlib import Pathimport matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport seaborn as snsfrom IPython.display import displayfrom pandas.api.types import CategoricalDtypefrom...
RedisTutorial03
Redis数据持久化持久化介绍持久化是什么Redis是跑在内存里的,当程序重启或者服务崩溃,数据就会丢失,如果业务场景希望重启之后数据还在,就需要持久化,即把数据保存到可永久保存的存储设备中。 持久化方式Redis提供两种方式来持久化: 1.RDB(Redis Database Backup),记录Redis某个时刻的全部数据,这种方式本质就是数据快照,直接保存二进制数据到磁盘,后续通过加载RDB文件恢复数据。 2.AOF(Append Only...



