TCP 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:네트워크]]
[[분류:네트워크]][[분류:정보처리기사]][[분류:정보보안기사]]
[[분류:정보처리기사]]
== 플래그 ==
[[분류:정보보안기사]]
; 좀 더 상세한 내용은 [[TCP 제어 플래그|TCP 제어 플래그 문서]] 참조
[[분류:프로토콜]]
* '''SYN''' : TCP Connection의 최초 접속 시 연결을 요구하는 플래그
 
* '''ACK''' : 응답 확인 플래그
;Transmission Control Protocol
* '''PSH''' : 데이터를 버퍼링하지 않고 즉석에서 수신자에게 송신하는 것을 요구하는 플래그
;'''양종단 호스트 내 프로세스 상호 간에 신뢰적인 연결지향성 서비스를 제공하는 전송 계층 프로토콜'''
* '''URG''' : 긴급 포인터 플래그
 
* '''FIN''' : 접속 종료 플래그 (정상 종료)
== TCP의 특징 ==
* '''RST''' : 접속 종료를 위한 리셋 플래그 (강제 종료)
 
*신뢰성 있는 연결을 지향한다.
*세그먼트에 순번을 지정하여 데이터의 순서를 유지한다.
*3-Way Handshaking을 통해 연결하고 4-Way Handshaking을 통해 연결을 종료한다.
 
== TCP 헤더 ==
[[파일:TCP 세그먼트 헤더.jpg]]
 
* Source Port : 출발지 포트번호
* Destination Port : 목적지 포트번호
* Sequence Number : 바이트 단위로 순서화되는 번호로, 이것을 통해 신뢰성(3-Way Handshake) 및 흐름제어(sliding Window) 기능 제공
* Acknowledgment Number : 수신하기를 기대하는 다음 byte 번호 (마지막으로 수신에 성공한 번호의 +1)
* Offset : 헤더 길이 필드이며 IPv4와 마찬가지로 나누기 4 계산 후 2진수로 작성됨
* Reserved : 예약된 필드, 현재 사용되지 않음
* Window : 자신의 수신 버퍼 여유용량 크기를 통보하여 얼마만큼의 데이터를 받을 수 있는지 상대방에게 알려주어 흐름제어를 수행하게 되는 필드
* [[TCP 제어 플래그]]
** U (Urgent) : 긴급 비트, 내가 지금 보내는 데이터가 우선순위가 높음. Urgnet Pointer와 세트
** A (Ack) : 승인 비트, 물어본거에 대한 응답을 해줄 때 사용됨
** P (Push) : 밀어넣기 비트, TCP 버퍼가 일정한 크기만큼 쌓여야 하는데 이거 상관없이 데이터를 계속 밀어 넣겠다
** R (Reset) : 초기화 비트, 상대방과 연결이 되어있는 상태에서 어떤 문제 등이 발생하여 연결 상태를 리셋하게 됨
** S (Syn) : 동기화 비트, 상대방과 연결을 시작할때 무조건 사용되는 플레그
** F (Fin) : 종료 비트
* Urgent Pointer : 어디서부터 긴급 값인지 알려주는 플래그 (TCP Flags의 U와 세트)
 
==플래그==
 
;좀 더 상세한 내용은 [[TCP 제어 플래그|TCP 제어 플래그 문서]] 참조
 
*'''SYN''' : TCP Connection의 최초 접속 시 연결을 요구하는 플래그
*'''ACK''' : 응답 확인 플래그
*'''PSH''' : 데이터를 버퍼링하지 않고 즉석에서 수신자에게 송신하는 것을 요구하는 플래그
*'''URG''' : 긴급 포인터 플래그
*'''FIN''' : 접속 종료 플래그 (정상 종료)
*'''RST''' : 접속 종료를 위한 리셋 플래그 (강제 종료)
 
==3-Way Handshaking==
 
;TCP 연결 수립 과정


== 3-Way Handshaking ==
; TCP 연결 수립 과정
[[image:3-way-handshake.png|500px|http://www.mdpi.com/2076-3417/6/11/358/htm]]
[[image:3-way-handshake.png|500px|http://www.mdpi.com/2076-3417/6/11/358/htm]]


==4-Way Handshaking==
== 4-Way Handshaking ==
 
; TCP 연결 종료 과정
;TCP 연결 종료 과정
# [Client(FIN_WAIT1) -> Server(CLOSE_WAIT)] FIN+ACK
 
# [Client(FIN_WATI2) <- Server(CLOSE_WAIT)] ACK
#[Client(FIN_WAIT1) -> Server(CLOSE_WAIT)] FIN+ACK
# [Client(TIME_WAIT) <- Server(LAST_ACK)] FIN+ACK
#[Client(FIN_WATI2) <- Server(CLOSE_WAIT)] ACK
# [Client(TIME_WAIT) -> Server(CLOSED] ACK
#[Client(TIME_WAIT) <- Server(LAST_ACK)] FIN+ACK
#[Client(TIME_WAIT) -> Server(CLOSED] ACK
 
==같이 보기==
 
*[[TCP/IP]]
*[[UDP]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)
원본 주소 "https://itwiki.kr/w/TCP"