File: tcp.7

package info (click to toggle)
manpages-ja 0.5.0.0.20080615-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 20,508 kB
  • ctags: 1
  • sloc: sh: 13,690; perl: 157; makefile: 114
file content (862 lines) | stat: -rw-r--r-- 30,068 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
.\" Permission is granted to distribute possibly modified copies
.\" of this page provided the header is included verbatim,
.\" and in case of nontrivial modification author and date
.\" of the modification is added to the header.
.\"
.\" 2.4 Updates by Nivedita Singhvi 4/20/02 <nivedita@us.ibm.com>.
.\" Modified, 2004-11-11, Michael Kerrisk and Andries Brouwer
.\"	Updated details of interaction of TCP_CORK and TCP_NODELAY.
.\"
.\" FIXME 2.6.17-rc1 adds the following /proc files, which need to be
.\" 	  documented: tcp_mtu_probing, tcp_base_mss, and
.\"	  tcp_workaround_signed_windows
.\"
.\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
.\" Translated 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated 2002-11-15, NAKANO Takeo
.\" Updated 2005-02-21, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2005-09-07, Akihiro MOTOKI
.\" Updated 2005-12-26, Akihiro MOTOKI
.\" Updated 2006-07-19, Akihiro MOTOKI, Catch up to LDP v2.36
.\"
.\"WORD         full duplex connection  ̿
.\"WORD         listening state         ³Ԥ
.\"WORD         denial of service attack	DoS 
.\"WORD         urgent data             ۵ޥǡ
.\"
.TH TCP  7 2007-11-25 "Linux" "Linux Programmer's Manual"
.SH ̾
tcp \- TCP ץȥ
.SH 
.B #include <sys/socket.h>
.br
.B #include <netinet/in.h>
.br
.B #include <netinet/tcp.h>
.sp
.B tcp_socket = socket(PF_INET, SOCK_STREAM, 0);
.SH 
 RFC\ 793, RFC\ 1122, RFC\ 2001 Ƥ TCP ץȥ
NewReno ĥ SACK ĥޤƼΤǤ롣
TCP ϡ
.BR ip (7)
ĤΥåȴ֤ˡι⤤ȥ꡼ظ
(full-duplex) ̿󶡤롣
v4  v6 ξΥС
.BR ip (7)
бƤ롣
TCP ϡǡä夹뤳ȡǼ줿ѥåȤ
뤳Ȥݾڤ롣ޤѥåñ̤˥å
뤳Ȥǡž顼Τ롣
TCP ϥ쥳ɶ (record boundary) ¸ʤ

줿Ф TCP åȤϡ
⡼ȥɥ쥹륢ɥ쥹ʤ
äƾܺ٤˻ꤵ줿֤ǤϤʤ
ؤ TCP ³ˤϡ
.BR connect (2)
ѤƤ⤦ TCP åȤؤ³Ω롣
ο³ˤϡޤ
.BR bind (2)
ǥåȤʥɥ쥹ȥݡȤ˷ӤĤ
.BR listen (2)
ƤǥåȤ³Ԥ֤ˤ롣
θ塢夷³׵Ф
.BR accept (2)
ѤåȤ򿷤롣
.BR accept (2)
ޤ
.BR connect (2)
Υ뤬åȤϡܺ٤˻ꤵ줿֤Ȥʤꡢ
ǡΤȤ꤬ǽȤʤ롣³Ԥ֤ (listening) åȤ䡢
³ (connect) ƤʤåȤ̤ƥǡȤꤹ뤳ȤϤǤʤ

Linux  RFC\ 1323  TCP high performance ĥ򥵥ݡȤƤ롣
ˤϡProtection Against Wrapped Sequence Numbers (PAWS)
ɥ󥰡ॹפʤɤޤޤƤ롣
ɥ󥰤ѤȡٱޤӰ礭³ǡ
(64K ʾ)  TCP ɥѤ뤳ȤǽȤʤ롣
ѤˤϡΥХåե礭ʤФʤʤ
Хåե sysctl ѿ
.I net.ipv4.tcp_wmem

.I net.ipv4.tcp_rmem
ѤơƥΤ礭Ǥ롣
뤤ϡġΥåȤΤߤ礭ˤϡ
.B SO_SNDBUF

.B SO_RCVBUF
åȥץѤ
.BR setsockopt (2)
ѤꤹФ褤

.B SO_SNDBUF

.B SO_RCVBUF
Υᥫ˥륽åȥХåեκ祵ϡ
.I net.core.rmem_max

.I net.core.wmem_max
sysctl ǻꤵ줿ƥȤƤͤĶ뤳ȤϤǤʤ
TCP ϼºݤˤ
.BR setsockopt (2)
뤬׵ᤷХåեܤƤ롣
Τᡢθ
.BR getsockopt (2)
Ԥȡ
.BR setsockopt (2)
׵ᤷХåեȤϰۤʤ֤ͤ롣
TCP Ϥ;ʬʶ֤򡢴Ū䥫ͥι¤ΤѤƤꡢ
sysctl ѿϼºݤ TCP ɥ礭ʥȿǤ롣
³ˤ륽åȤΥХåեѹͭˤˤϡ
.BR listen (2)

.BR connect (2)
ꤷʤФʤʤ
ܤ
.BR socket (7)
򸫤衣
.PP
TCP ϶۵ޥǡ (urgent data) 򥵥ݡȤƤ롣۵ޥǡ
餫νפʥåǡȥ꡼˴ޤޤƤ뤳ȡ
ΥǡǤ᤯٤ȡԤ뤿Ѥ롣
۵ޥǡˤϡ
.BR send (2)

.B MSG_OOB
ץꤹ롣
۵ޥǡȡͥ
.B SIGURG
ʥ롣
.B SIOCSPGRP

.B FIOSETOWN
ioctl ( POSIX.1-2001 ǵꤵƤ
.BR fcntl (2)
.B F_SETOWN
) ѤƤΥåȤΡֽͭԡפȤꤵ줿
ץץ롼פǤ롣
.B SO_OOBINLINE
åȥץͭˤʤäƤȡ۵ޥǡ
̾Υǡȥ꡼˺ (ץϲ
.B SIOCATMARK
ioctl Ȥäƶ۵ޥǡξĴ٤뤳ȤǤ)
̵ˤʤäƤˤϡ
.BR recv (2)

.BR recvmsg (2)

.B MSG_OOB
ե饰åȤƤȤˤΤߡ۵ޥǡǤ롣

Linux 2.4 Ǥ¿ѹʤ졢
롼ץåȤȥ󥰤夷ǽޤä
εǽˤϡԡ
.BR sendfile (2)
Explicit Congestion Notification
TIME_WAIT åȤοˡ
keep-alive åȥץ
Duplicate SACK ĥΥݡȤʤɤ롣
.SS ɥ쥹Υեޥå
TCP  IP ξؤ˹ۤƤ
.RB ( ip (7)
򻲾)
.BR ip (7)
Ƥ륢ɥ쥹եޥåȤ TCP ˤŬѤ롣
TCP  point-to-point ̿򥵥ݡȤ롣
֥ɥ㥹Ȥޥ㥹ȤϥݡȤʤ
.SS sysctl
ѿ˥ˤϡ
.I proc/sys/net/ipv4/*
եɤ߽񤭤ˡȡ󥿡եФ
.BR sysctl (2)
Ѥˡ롣
äơۤȤɤ IP sysctl  TCP ˤŬѤǤ롣
.BR ip (7)
򻲾ȤΤȡ
.I Boolean
ͤǡ
0 ʳ ("true") б륪ץͭ
0  ("false") ̵Ǥ뤳Ȥ̣롣
.\" FIXME 2006/09 ߤ ͥ 2.6.18-rc5 Ǥϡ
.\"	ʲޤܤƤʤ (ǥեͤܤƤ):
.\"
.\"     /proc/sys/net/ipv4/tcp_congestion_control (since 2.6.13)
.\"     bic
.\"     /proc/sys/net/ipv4/tcp_moderate_rcvbuf
.\"     1
.\"     /proc/sys/net/ipv4/tcp_no_metrics_save
.\"     0
.TP
.IR tcp_abort_on_overflow " (Boolean; default: disabled)"
³ԤƤ륵ӥ٤ơˤĤƤʤˡ
³ꥻåȤǤ褦ˤ롣
ѤȡСȤˤäƥСեäȤˡ
³Ǥ褦ˤʤ롣ΥץѤΤϡ
ǡ®Ǥʤˡָꤹפȡ
ΥץѤȡΥФ³Ƥ륯饤
ˤȤäƤϳˤʤ뤳Ȥ롣
.TP
.IR tcp_adv_win_scale " (integer; default: 2)"
Хåե󥰤ΥСإåɤη׻ˡ
.I tcp_adv_win_scale
ξ bytes/2^tcp_adv_win_scale ˡ
.I tcp_adv_win_scale
餫 0 ξ bytes-bytes/2^(\-tcp_adv_win_scale) Ȥ롣

åȤμХåե֤ϥץꥱȥͥǶͭ롣
TCP ϥХåեΰ TCP ɥȤƴ
ɥȤ³¾üΤ롣
֤λĤϡ֥ץꥱץХåեȤѤ졢
塼󥰤䥢ץꥱٱ䤫ͥåȥΥ롣
.I tcp_adv_win_scale
Υǥեͤ 2 Ǥꡢ
ξ祢ץꥱХåեΤ 1/4 ˤʤ롣
.TP
.IR tcp_app_win  " (integer; default: 31)"
ѿϡTCP ɥβХʬ
Хåե󥰤ΥСإåѤͽ󤹤뤫ꤹ롣

Υɥ \fIwindow/2^tcp_app_win\fP  mss 礭ۤ (Хñ)
ץꥱХåեȤͽ󤵤롣
0 ꤹȰͽΰʤ
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_bic " (Boolean; default: disabled)"
BIC TCP 楢르ꥺͭˤ롣
BIC-TCP ¦Τߤѹǡ
ӥƥ TCP  (friendliness) ξ󶡤Ĥġ
礭ʥɥβǤ RTT ʿݾڤΤǤ롣
ΥץȥǤ additive increase (ɲŪ) 
binary search increase (ʬõ) ȤĤλȤߤ
Ȥ߹碌Ƥ롣ԥɥ礭Ȥϡʬ礭
additive increase ˤꡢӥƥݤʤ
 RTT ʿݾڤ롣
ԥɥȤˤ binary search increase ˤ
TCP ãƤ롣
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_bic_low_window " (integer; default: 14)"
BIC TCP ԥɥĴ򳫻Ϥͥɥ (ѥåñ)
ꤹ롣ͤ򲼲硢BIC TCP ϥǥեȤ TCP Reno 
Ʊư򤹤롣
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_bic_fast_convergence " (Boolean; default: enabled)"
BIC TCP ԥɥѲˤ®ȿ褦ˤ롣
ƱͥͭĤΥեĤˤޤȤޤΤ
®Ԥ褦ˤ롣
.TP
.IR tcp_dsack " (Boolean; default: enabled)"
RFC\ 2883  TCP Duplicate SACK ΥݡȤͭˤ롣
.TP
.IR tcp_ecn " (Boolean; default: disabled)"
RFC\ 2884  Explicit Congestion Notification ͭˤ롣
ͭˤȡְä񤤤򤹤Ť롼
ϩˤ褦³ФƱƶ
ˤäƤ³뤫⤷ʤ
.TP
.IR tcp_fack " (Boolean; default: enabled)"
TCP Forward Acknowledgement ΥݡȤͭˤ롣
.TP
.IR tcp_fin_timeout " (integer; default: 60)"
åȤŪ˥ˡ
Ǹ FIN ѥåȤԤĻ֤ñ̤ǻꤹ롣
ϸ̩ˤ TCP λͤƤʤ
DoS  (denial of service attack) Ȥ뤿ɬפǤ롣
Linux 2.2 Ǥϥǥեͤ 180 Ǥä
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_frto " (Boolean; default: disabled)"
TCP ॢȤǽ夵르ꥺǤ롢
F-RIO ͭˤ롣εǽ̵Ķä˸̤ȯ롣
̵ĶǤϡ̾ϡ֥롼ԤǤϤʤ̵δ
ˤѥåȥȯ롣
.TP
.IR tcp_keepalive_intvl " (integer; default: 75)"
TCP keep-alive Υץֳ֤ (ñ)
.TP
.IR tcp_keepalive_probes " (integer; default: 9)"
TCP keep-alive ץ֤κ
βƤ³褫ȿʤϡ
³Ǥ롣
.TP
.IR tcp_keepalive_time " (integer; default: 7200)"
³ɥ֤ˤʤäƤ顢keep-alive
ץ֤ޤǤλ֤ñ̤ǻꤹ롣
.B SO_KEEPALIVE
åȥץͭˤʤäƤʤ
keep-alive ʤ
ǥեͤ 7200  (2 )
keep-alive ͭˤʤäƤ硢
ˤ褽 11 ʬ (75 ôֳ֤ 9 ץʬ)
в᤹ȥɥ֤³Ͻλ롣

ؤˤ³׵䥢ץꥱǤΥॢȤϡ
äȤäû⤷ʤ
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_low_latency  " (Boolean; default: disabled)"
ͭˤȡTCP åϥ롼ץåȤ⤯
ٱ򾯤ʤ뤳Ȥͥ褷ȽǤԤ
Υץ̵ˤȡ롼ץåȤ⤯뤳Ȥͥ褵롣
Υǥեͤѹ褤ץꥱȤƤ
Beowulf ԥ塼饹󤲤
.TP
.IR tcp_max_orphans  " (integer; default: )"
ƥबƤ롢
orphan  (ɤΥ桼եϥɥˤ⥢åƤʤ)
TCP åȤκ
οۤȡorphan ³ϥꥻåȤ졢ٹɽ롣
¤¸ߤΤϡñʻǽ (denial-of-service) 
ɤ˲᤮ʤͤ򾮤뤳ȤϿ侩ʤ
ͥåȥξˤäƤϡοͤ礭ʤȤʤ⤷ʤ
orphan ʥåȤҤȤĤ
64K ٤ΥåԲǽʥ񤹤뤳Ȥդ衣
ǥեȤνͤϥͥѥ᡼ NR_FILE 
νǥեͤϥƥΥ˱Ĵ롣
.TP
.IR tcp_max_syn_backlog " (integer; default: )"
³ƤƤ륯饤Ȥ
ack Ƥʤ֤³ꥯȤ򥭥塼֤
οͤۤȡͥϥꥯȤΤƻϤ롣
ǥեȤͤ 256 ǡ
ƥ˽ʬʥ꤬ (128Mb ʾ)  1024 ˤʤꡢ
꤬˾ʤ (32 Mb ʲ)  128 ˤʤ롣
οͤ 1024 ʾ䤷ϡ
.I include/net/tcp.h
 TCP_SYNQ_HSIZE 
TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog Τ褦˽
ͥƥѥ뤹뤳Ȥ򾩤롣
.TP
.IR tcp_max_tw_buckets " (integer; default: )"
ƥबƤ TIME_WAIT ֤ˤ륽åȤκ
¤¸ߤΤϡ
ñʻǽ (denial-of-service) ɤ˲᤮ʤ
ǥեͤ NR_FILE*2 ǡƥΥ˱Ĵ롣
οͤۤȡΤ褦ʥåȤϥ졢ٹɽ롣
.TP
.I tcp_mem
 3 Ĥ [low, pressure, high] ʤ٥ȥͤǤ롣
 TCP ̤פ뤿Ѥ롣
ǥեȤϥ֡ȻѤǤ̤׻롣
(ºݤˤϡTCP 
.I "low memory"
ΤߤѤ롣ͤ 32ӥåȥƥǤ 900 ᥬХȤ¤롣
64 ӥåȥƥǤϤ¤Ϥʤ)

.I low
- TCP ϡХ˥ȤڡοͰʲξϡ
ꥢĴʤ

.I pressure
- TCP Ȥ꤬οʬΥڡۤȡ
TCP ϥޤ褦ˤʤ롣
Ȥڡ
.I low
ʲˤʤȡΥ갵֤æ롣

.I high
- TCP Х˳Ƥڡκ͡
ͤϥͥˤäƲݤ뤢¤ͥ褵롣
.TP
.IR tcp_orphan_retries " (integer; default: 8)"
餫饯³ˤĤơ
ץ֤Կ
.TP
.IR tcp_reordering " (integer; default: 3)"
TCP ѥåȥȥ꡼ǥѥåȽεžȯǤꡢ
ѥåȥäȤϤߤʤʤѥåȿκ͡
ͤĶƥѥåȤνžȡѥåȥ
ߤʤslow start 롣
οͤѹʤۤɤ
ϡ³ΥѥåȤ¤ؤˤä
ɬפ®㲼Ǿ褦߷פ줿
ѥå¤ؤ (packet reordering) θΥȥåʤΤǤ롣
.TP
.IR tcp_retrans_collapse " (Boolean; default: enabled)"
κݤ˥ե륵ΥѥåȤȤ롣
.TP
.IR tcp_retries1 " (integer; default: 3)"
̤˳ΩƤ³ˡ
TCP ͥåȥؤ򴬤ޤ˺ߤ
βۤȡޤǽˡ
˲ǽʤͥåȥؤ˷ϩ򹹿롣
ǥեȤ RFC ꤷƤǾǤ 3
.TP
.IR tcp_retries2 " (integer; default: 15)"
Ω֤³ˡβ TCP ѥåȤκ
ԤʤäƤʾϤ롣
ǥեͤ 15 ǡ (ΥॢȤ˰¸뤬)
褽 1330 ʬ٤δ֤б롣
RFC\ 1122 ϺǾθ³ 100 ä֤Ƥ뤬
ϤƤξˤûȻפ롣
.TP
.IR tcp_rfc1337 " (Boolean; default: disabled)"
TCP ư RFC\ 1337 ˽򤵤롣
̵ˤȡTIME_WAIT ֤ΤȤ RST 줿硢
TIME_WAIT ֤νλԤˤΥåȤľ˥롣
.TP
.I tcp_rmem
 3 Ĥ [min, default, max] ʤ٥ȥͤǤ롣
 TCP ХåեĴ뤿Ѥ롣
TCP ϡƥѤǤ˱ơ
ХåեΥ򤳤 sysctl ѿϰϤ
ʲ˼ǥեȤưŪĴ롣

.I min
-  TCP åȤѤХåեκǾ
ǥեͤ 4K ХȤǡξʤƥǤ
.B PAGE_SIZE
ХȤ˸餵롣
ͤϡ갵⡼ɤˤƤ⡢
ΥγƤ뤳Ȥݾڤ뤿Ѥ롣
ϡ
.B SO_RCVBUF
ѤƥåȤκХåեݤˤѤʤ
.\"nakano Documentation/networking/ip-sysctls.txt
.\"nakano ߤ¤ǤϤƤΤ褦ʡ

.I default
- TCP åȤμХåեΥǥեȥ
ͤϡ٤ƤΥץȥФƤ롢
ͥåʥХΥǥեȥХåե
.I net.core.rmem_default
ͥ褵롣
ǥեͤ 87380 ХȤǡξʤƥǤ
43689 ˤޤǸ餵롣
礭ʼХåեɬפʾϡ
ͤ䤹٤Ǥ (٤ƤΥåȤ˱ƶ)
礭 TCP ɥѤˤϡ
.I net.ipv4.tcp_window_scaling
ͭˤƤʤФʤʤ (ǥեȤͭ)

.I max
-  TCP åȤѤХåեκ祵
ͤ⥰Х
.I net.core.rmem_max
ͥ褵롣
ϡ
.B SO_RCVBUF
ѤƥåȤμХåե¤ݤˤѤʤ
.\"nakano Ʊ塣
ǥեͤ 87380*2 ХȤǡξʤƥǤ
87380 ˤޤǸ餵롣
.TP
.IR tcp_sack " (Boolean; default: enabled)"
RFC\ 2018  TCP Selective Acknowledgements ͭˤ롣
.TP
.IR tcp_stdurg " (Boolean; default: disabled)"
Υץͭˤȡ TCP ۵ޥݥ (urgent-pointer)
եɤ RFC\ 1122 ˽äԤ
.\" RFC\ 793 ϶۵ޥݥ󥿤ΰ̣ε꤬ۣǤä
.\" RFC\ 1122 ( RFC\ 961) ǤϤۣ椵˰Ĥβ᤿
.\" (ǰʤ "ְä" Ǥä)
β˽ȡ۵ޥݥ󥿤϶۵ޥǡκǸΥХȤؤ
Υץ̵ˤȡ۵ޥݥ󥿤β᤬ BSD ߴˡ
Ԥ: ۵ޥݥ󥿤϶۵ޥǡθκǽΥХȤؤ
Υץͭˤȡ꤬߱뤫⤷ʤ
.TP
.IR tcp_synack_retries " (integer; default: 5)"
passive  TCP ³ SYN/ACK ȤǺߤ
οͤ 255 礭٤ǤϤʤ
.TP
.IR tcp_syncookies " (Boolean)"
.TCP syncookies ͭˤ롣ͥ
.B CONFIG_SYNCOOKIES
Ĥƥѥ뤷ƤʤФʤʤ
åȤΥХå塼Сեȡ
syncookies 롣
syncookies ǽϡSYN flood ⤫饽åȤȤ롣
ϤˤƤ⡢ǽʤȤѤ٤Ǥ롣
 TCP ץȥ˰ȿƤꡢ
TCP ĥΤ褦ʡTCP ¾ʬȾͤƤޤ
饤Ȥ졼꤬뤳Ȥ⤢롣
٤ְ㤤ˤä٤礭ʾ֤ˤ륵ФĴƵߤ
Ȥߤʤ٤ǤϤʤ
Τ褦Ӥˤϡ
.IR tcp_max_syn_backlog ,
.IR tcp_synack_retries ,
.I tcp_abort_on_overflow
ʤɤλѤͤ뤳ȡ
.TP
.IR tcp_syn_retries  " (integer; default: 5)"
ƥ֤ TCP ³˽ SYN κߤ
οͤ 255 礭٤ǤϤʤ
ǥեȤͤ 5 ǡ褽 180 äб롣
.TP
.IR tcp_timestamps " (Boolean; default: enabled)"
RFC\ 1323  TCP timestamps ͭˤ롣
.TP
.IR tcp_tw_recycle " (Boolean; default: disabled)"
TIME_WAIT åȤᤤѤͭˤ롣
Υץͭˤȡ
NAT (ͥåȥɥ쥹Ѵ) ѤƤ꤬Τǡ
ޤ侩ʤ
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_tw_reuse " (Boolean; default: disabled)"
ץȥ̤鸫ʤ˿ͥ TIME_WAIT
֤ΥåȤѤ뤳ȤĤ롣Ū˾ܤͤν
ʤˤΥץѹ٤ǤϤʤ
.TP
.IR tcp_window_scaling " (Boolean; default: enabled)"
RFC\ 1323  TCP ɥ󥰤ͭˤ롣
εǽѤȡ³褬бƤС
TCP ³礭 (64K ʾ) ɥȤ褦ˤʤ롣
̾ TCP إåΥɥĹեɤ 16 ӥåȤʤΤǡ
ɥ 64K ХȰʲ˸¤롣
ä礭ʥɥȤϡ
ץꥱϥåȥХåեΥ䤷ơ
ɥ󥰤ΥץѤФ褤
.I tcp_window_scaling
̵ˤƤȡ
TCP ¾üȤ³κݤˡ
ɥ󥰤ΥͥԤʤʤ
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_vegas_cong_avoid  " (Boolean; default: disabled)"
TCP Vegas 楢르ꥺͭˤ롣
TCP Vegas Ӱ¬뤳ȤԤεϤͽۤ褦
TCP ¦ΤߤѹäΤǤ롣
TCP Vegas ԥɥ뤳Ȥǡ졼ȤĴ롣
TCP Vegas  TCP Reno ٤ƥѥåȥϾʤ
TCP Reno ۤѶŪʵưϤʤ
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
.IR tcp_westwood " (Boolean; default: disabled)"
TCP Westwood+ 楢르ꥺͭˤ롣
TCP Westwood+  TCP ǽŬ褦 TCP Reno 
ץȥ륹å¦Τߤ˽äΤǤ롣
Ԥäǡԥɥ slow start ͤ
̿ξü֤Ӱο¬˴Ťꤹ롣
ο¬ȤäơTCP Westwood+ Ԥȯ˻ȤäƤ
Ӱθ줿 slow start ͤԥɥꤹ롣
TCP Westwood+ ϡͭͥåȥˤ TCP Reno θʿ
(fairness) ȡ̵󥯤ǤΥ롼ץåȤ礭夹롣
.TP
.I tcp_wmem
 3 Ĥ [min, default, max] ʤ٥ȥͤǤ롣
 TCP ХåեĴ뤿Ѥ롣
TCP ϡƥѤǤ˱ơ
ХåեΥ򤳤 sysctl ѿϰϤ
ʲ˼ǥեȤưŪĴ롣

.I min
-  TCP åȤѤХåեκǾ
ǥեͤ 4K Ǥ롣
ͤϡ갵⡼ɤˤƤ⡢
ΥʲγƤ뤳Ȥݾڤ뤿Ѥ롣
ϡ
.B SO_SNDBUF
ѤƥåȤκХåեݤˤѤʤ

.I default
- TCP åȤХåեΥǥեȥ
ͤϡ٤ƤΥץȥФƤ롢
ͥåʥХΥǥեȥХåե
.I net.core.rmem_default
ͥ褵롣
ǥեͤ 16K ХȤǤ롣
礭Хåեɬפʾϡ
ͤ䤹٤Ǥ (٤ƤΥåȤ˱ƶ)
礭 TCP ɥѤˤϡ
.I net.ipv4.tcp_window_scaling
ͭˤƤʤФʤʤ (ǥեȤͭ)

.I max
-  TCP åȤѤХåեκ祵
ͤ⥰Х
.I net.core.wmem_max
ͥ褵롣

.B SO_SNDBUF
ѤƥåȤХåե¤ݤˤѤʤ
ǥեͤ 128K ХȤǡƥΥꥵ˱
64K ˤޤǸ餵롣
.SS åȥץ
TCP åȤΥץϡ
ץ٥
.I IPPROTO_TCP
.BR setsockopt (2)
Ǥ
.BR getsockopt (2)
ǼǤ롣
ˡۤȤɤ
.B IPPROTO_IP
åȥץ TCP åȤФͭǤ롣ܺ٤
.BR ip (7)
򸫤衣
.\" FIXME Document TCP_CONGESTION (new in 2.6.13)
.TP
.B TCP_CORK
åȤȡ partial ե졼ʤ
Υץ󤬲ȡ
塼󥰤줿 partial ե졼ब롣
.BR sendfile (2)
Ƥ˥إå֤ꡢ
롼ץåȤŬǤ롣
ߤμǤϡ
.B TCP_CORK
ǽϤޤ뤳ȤǤ֤ξ¤ 200 ߥäǤ롣
ξ¤ãȡ塼󥰤줿ǡϼưŪ롣
Linux 2.5.71 ʹߤˤƤΤߡΥץ
.B TCP_NODELAY
ƱѤ뤳ȤǤ롣
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_DEFER_ACCEPT
ѤȡꥹʤϥǡåȤ夷ΤܳФ褦ˤʤ롣
 () Ȥꡢ
TCP ³λ褦Ȼߤ¤Ǥ롣
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_INFO
ΥåȤξΤѤ롣
ͥ
.I /usr/include/linux/tcp.h
եƤ
\fIstruct tcp_info\fP ֤
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_KEEPCNT
³Ȥ TCP ߤ keepalive ץ֤κ
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_KEEPIDLE
λ (ñ) ۤ³ɥ֤αޤäƤȡ
ΥåȤ
.B SO_KEEPALIVE
åȥץꤵƤ硢
TCP  keepalive ץ֤Ϥ롣
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_KEEPINTVL
 keepalive ץ֤δֳ (ñ)
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_LINGER2
orphan 줿 FIN_WAIT2 ֤ΥåȤμ̿
ΥץѤȡƥ磻ɤ sysctl
.I tcp_fin_timeout
ͤ򡢤ΥåȤФƤΤѹǤ롣
.BR socket (7)
٥Υץ
.B SO_LINGER
ȺƱʤȡ
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_MAXSEG
 TCP ѥåȤκ祻ȥ
Υץ³Ωꤹȡ
ѥåȤ¾ü˥ʥ󥹤 MSS ͤѲ롣
󥿡ե MTU 礭 (뤤礭ʤäƤޤä)
ͤϸ̤ʤ
ޤ TCP ϡͤǾ¤ͥ褹롣
.TP
.B TCP_NODELAY
ꤹ Nagle 르ꥺ̵ˤ롣
ʤǡ̤ʤǤ
ƥȤϲǽʸ¤᤯롣
ꤵƤʤȡ
ʬίޤޤǥǡϥХåե졢
ʥѥåȤˤ餺ˤߡ
ͥåȥͭѤǤ롣
Υץ
.B TCP_CORK
ˤ񤭤롣ʤ顢
.B TCP_CORK
ꤵƤǤäƤ⡢Υץꤹȡ
ԤνϤŪݤФ (flush) Ȥˤʤ롣
.TP
.B TCP_QUICKACK
ꤵƤ quickack ⡼ɤͭˤꥢ̵ˤ롣
̾ TCP ưǤ ack ɬפ˱ٱ䤵ΤФ
quickack ⡼ɤǤ ack Ϥ롣
Υե饰ϱ³ŪʤΤǤϤʤ
quickack ⡼ɤ/⡼ɤڤؤ뤿ΤΤǤ롣
ʹߤ TCP ץȥưˤäƤϡ
Υץȥ䡢ٱ ack ॢȤȯ
ǡžʤɤװˤäơ
Ƥ quickack Фäꤹ롣
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_SYNCNT
³λԤߤ TCP  SYN ꤹ롣
 255 礭ϤǤʤ
ܿɬפʥץǤϤΥץѤ٤ǤϤʤ
.TP
.B TCP_WINDOW_CLAMP
󤹤륦ɥΥ򤳤ͤ˸ꤹ롣
ͥˤäƺǾ SOCK_MIN_RCVBUF/2 ¤Ƥ롣
ΥץϰܿɬפʥɤǤѤ٤Ǥʤ
.SS ioctl
ʲ
.BR ioctl (2)
ƤӽФ
.I value
˾֤
񼰤ϰʲ̤ꡣ
.PP
.RS
.nf
.BI int " value";
.IB error " = ioctl(" tcp_socket ", " ioctl_type ", &" value ");"
.fi
.RE
.PP
.I ioctl_type
ϰʲΤ줫ĤǤ:
.TP
.B SIOCINQ
ХåեΥ塼ˤ롢ޤɤǤʤǡ̤֤
åȤ LISTEN ֤ˤäƤϤʤ餺
ʤȥ顼
.RB ( EINVAL )
֤롣
.TP
.B SIOCATMARK
ǡȥ꡼ब۵ޥޡΰ֤ǤС֤ (Ĥޤ
.I value
 0 ʳ)
.sp
.B SO_OOBINLINE
åȥץꤵƤơ
.B SIOCATMARK
֤硢ΥåȤɤ߹ߤǤ϶۵ޥǡ
֤롣
.B SO_OOBINLINE
åȥץꤵƤ餺
.B SIOCATMARK
֤硢ΥåȤɤ߹ߤǤ϶۵ޥǡ
³ǡ֤ (ºݤ˶۵ޥǡɤ߹ˤ
.B recv(MSG_OOB)
ȥե饰Ĥɬפ)

ǡΰɤ߹ߤǤ϶۵ޥޡ٤äƤɤ߹ߤϹԤʤ
ץꥱ󤬶۵ޥǡ¸ߤ
.RI ( exceptfds
Ȥä)
.BR select (2)
ͳޤ
.B SIGURG
ʥ̤Τ餵줿硢
.B SIOCATMARK
Υåɤ߹ (Хɤ߹׵򤷤Ƥ褤) 
.B SIOCATMARK
֤ʤʤޤǷ֤ԤȤǡ۵ޥޡΰ֤ޤ
ɤ߿ʤ뤳ȤǤ롣
.TP
.B SIOCOUTQ
åȤ塼˻ĤäƤ̤ǡ̤֤
åȤ LISTEN ֤ˤäƤϤʤʤ
LISTEN ֤ξˤϥ顼
.RB ( EINVAL )
Ȥʤ롣
.SS 顼
ͥåȥ顼ȡ TCP ϥѥåȤκߤ롣
󤫤äƤʤС³Ф
.B ETIMEOUT
顼Ǹ˼顼֤롣
.PP
ץꥱˤäƤϡä᤯顼Τ餻Ƥۤ礬롣
ˤ
.B IPPROTO_IP
٥
.B IP_RECVERR
åȥץѤɤΥץͭˤʤäƤȡ
夷顼Ϥ٤Ƥ˥桼ץϤ롣
ΥץϿŤѤ뤳 \(em 롼ƥ󥰤ѹʤɡ
̾濫ꤦͥåȥ֤Ф TCP ȼˤƤޤ
.SH 顼
.TP
.B EAFNOTSUPPORT
.I sin_family
Ϥ줿åȥɥ쥹Υפ
.B AF_INET
ǤϤʤä
.TP
.B EPIPE
³褬ͽʤäǥåȤ򥯥
ޤϥåȥ󤵤줿åȤɤ߹ߤ¹Ԥ줿
.TP
.B ETIMEDOUT
³褬󤫥ǡƤȿʤ
.PP
.BR ip (7)
Ƥ륨顼䡢ͥåʥåؤˤ륨顼
TCP ֤뤳Ȥ롣
.SH С
Explicit Congestion Notificationzero-copy 
.BR sendfile (2)
¤ؤΥݡȡSACK ĥ (DSACK) ʤɤΥݡȤ
2.4 Ƴ줿
եɳǧ (FACK)TIME_WAIT ꥵ롢
³Ȥ keepalive ʤɤФ륽åȥץ sysctl 
2.3 Ƴ줿

ʸͿ sysctl ѿΥǥեͤȲϡ
2.4 ͥΤΤǤ롣
.SH 
TCP ˤΰ̣ǤӰ賰ǡ (out-of-band data) Ϥʤ
TCP ĤΤ϶۵ޥǡǤ롣Ĥޤ Linux ˤƤϡ
³褬 () Ӱ賰ǡäƤ硢
(Ť)
۵ޥǡ̾ΥǡȤƥȥ꡼뤳Ȥˤʤ (
.B SO_OOBINLINE
åȤƤǤƱͤǤ)
 BSD ١ΥåȤϰۤʤ롣
.PP
Linux ϡǥեȤǤ urgent ݥ󥿥եɤβ
BSD ߴˡѤ롣 RFC\ 1122 ȿƤ뤬
¾ΥåƱưˤϤʤ
.I tcp_stdurg
sysctl ˤäѹǤ롣
.SH Х
ޤƤʤ顼롣
.br
IPv6 ˴ؤ뵭Ҥʤ
.\" Only a single Linux kernel version is described
.\" Info for 2.2 was lost. Should be added again,
.\" or put into a separate page.
.\" .SH 
.\"  man ڡϺǽ Andi Kleen ˤäƽ񤫤줿
.\" Alexey Kuznetsov ʸ Documentation/networking/ip-sysctl.txt
.\" ξ򸵤ˡNivedita Singhvi  2.4 ˹
.SH Ϣ
.BR accept (2),
.BR bind (2),
.BR connect (2),
.BR getsockopt (2),
.BR listen (2),
.BR recvmsg (2),
.BR sendfile (2),
.BR sendmsg (2),
.BR socket (2),
.BR sysctl (2),
.BR ip (7),
.BR socket (7)
.sp
RFC\ 793: TCP λ͡
.br
RFC\ 1122: TCP ׵ Nagle 르ꥺεҡ
.br
RFC\ 1323: TCP Υॹסɥ󥰳ƥץ
.br
RFC\ 1644: TIME_WAIT assassination hazard ˴ؤ뵭ҡ
.br
RFC\ 3168: Explicit Congestion Notification ˴ؤ뵭ҡ
.br
RFC\ 2581: TCP 楢르ꥺࡣ
.br
RFC\ 2018  RFC\ 2883: SACK Ȥγĥ