热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

知乎_如何才能算得上熟悉TCP/IP编程?(转知乎)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何才能算得上熟悉TCP/IP编程?(转知乎)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何才能算得上熟悉TCP/IP编程?(转知乎)相关的知识,希望对你有一定的参考价值。




1、

作者:匿名用户
链接:https://www.zhihu.com/question/20795067/answer/16259037

能进行网络编程

1.如果你说你会select,epoll,iocp模型,那会让对方觉得更靠谱
2.如果你说出你做过im,下载之类那会让对方来兴趣.
3.如果你说设计了通讯协议,会让对方觉得更贴切
4.如果你说做过,熟悉, ftp http snmp smtp 这些简单的老古董协议,会加分,但不大.
5.如果你说熟悉bt,emule,udt等协议,那会对你很有好感.
6.如果你说你破解过某大牌 qq,360内某通讯协议,那会对你加分很大.

我对熟悉的定义是:闭着眼能想起原理和实现,能和其他人侃侃而谈,能在搜索的帮助下,不慢的整出来.


精通的定义是:观点一针见血,实现一挥而就.


2、


作者:灵剑
链接:https://www.zhihu.com/question/20795067/answer/113142971


大部分提这个的到最后都用不上socket编程,毕竟现在是WebService的时代,大部分时候都可以把对外提供服务的协议限定在HTTP、WebSocket和JSON-RPC三种协议上。这就看你对岗位的了解了。
而且熟悉协议和熟悉编程本质上来说是两个要求啊……熟悉协议是指底层(三层及以下)数据包交换的规则,而熟悉socket编程,指的是熟悉socket, bind, listen, accept, recv, send等一系列接口,这个可要比熟悉协议简单多了。至于真的称得上熟悉协议的我觉得没多少,我做网络相关也不会指望招人的时候能来个熟悉TCP协议的,比如说窗长为什么最多是2^30字节,窗长和带宽、延迟各自是什么关系,TCP有哪些选项,TCP选项如何协商,为什么初始的seq序号需要在不同五元组上独立生成,TCP协商的MSS与实际发送的包长和payload大小是什么关系等等,说实话真的有点难,TCP作为一个有状态的协议是非常难懂的。RFC都修了好多个版本了。
熟悉socket编程相对来说就简单多了,主要要点在于理解TCP是个流(所以真心不要再问为什么会“粘包”了),是可靠传输,有缓冲区限制,然后理解一下每个接口的作用和使用方法就行了。然后了解下如何使用多线程和epoll/select同时处理多个socket,tcpserver的一般性的编写方法等等,足够了



 

 

推荐阅读
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • FTP服务ftp的报错及用户管理
    ftp服务常见报错530报错认证失败(密码错误或者服务端拒绝)550服务本身未开启553文件系统不可写(权限问题)500服 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • IP双栈环境下网络应用迁移
    IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • FILETYPE*filetype.txt*ForVimversion6.4.文件类型*filetype**file-type*1.文件类型|filetypes|2.文件类型插 ... [详细]
author-avatar
KING逊咖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有