关闭TCP连接



关闭TCP连接

关闭TCP连接的面试问题三境界

  1. 描述下TCP连接关闭的过程?
  2. 描述下TCP连接关闭的步骤,以及每一步的状态?
  3. shutdwon与close的区别?
step packet client state server state remark
0 ESTABLISHED ESTABLISHED
1 client 向 server 发送FIN包(seq=x) server收到之前 FIN_WAIT_1 ESTABLISHED client调用close
2 server收到FIN包,server向client发送ACK包(ack=x+1),client收到之后 FIN_WAIT_2 CLOSE_WAIT
3 server向client发送 FIN包(seq=y),client收到之前 FIN_WAIT_2 LAST_ACK server 调用close
4 client向server发送 ACK包(ack=y+1),server收到确认之后 TIME_WAIT CLOSED

terminate tcp connection

shutdwon & close

man 2 shutdown

NAME         shutdown - shut down part of a full-duplex connection    SYNOPSIS         #include <sys/socket.h>           int shutdown(int sockfd, int how);    DESCRIPTION         The  shutdown()  call  causes  all  or part of a full-duplex connection on the socket associated with sockfd to be shut down.  If how is SHUT_RD, further receptions will be disallowed.  If how is SHUT_WR, further         transmissions will be disallowed.  If how is SHUT_RDWR, further receptions and transmissions will be disallowed.  

shutdown 可以通过how参数选择关闭sockfd读端、写端或者读写端。
close 会关闭sockfd的读写两端,不能选择性关闭。


Read full article from 关闭TCP连接


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts