-
TCP(Transmission Control Protocol) 이란?Engineer information security 2020. 11. 9. 04:05반응형
TCP는 흐름 제어 / 혼잡 제어 / 오류 제어를 통해 데이터 전송의 신뢰성을 보장하는 프로토콜이다.
위의 세 가지를 설명하면 아래와 같다.
흐름 제어 : 송신자와 수신자 간에 데이터를 효율적으로 전송하는 것이다. 이것은 Sliding Window(슬라이딩 윈도우) 방식을 통해 진행된다. Sliding Window란 송신자와 수신자 간의 수신 가능한 크기를 정한 뒤, 그 범위에서 데이터를 전송하는 방식이다.
혼잡 제어 : 네트워크의 상황이 혼잡할 때 송신자가 데이터 전송량을 조절하는 것이다. 수신자가 데이터를 받을 수 없는 상태에서 송신자가 계속 데이터를 보낸다면 수신자가 받지 못한 데이터는 손실 또는 누락된다.
오류 제어 : 데이터를 전송할 때 오류가 발생하면 재전송하여 신뢰성을 보장한다.
TCP의 기능을 알기 위해서는 TCP Header 구조를 확인해봐야 한다. 프로토콜의 Header 구조를 알고 있으면 프로토콜의 기능에 대한 이해가 훨씬 빠르다. TCP Header 이미지와 함께 각 필드에 대한 설명을 적어 보겠다.
Source Port Address : 출발지 포트 주소
Destination Port Address : 도착지 포트 주소
Sequence Number : 순서 번호, 전송 데이터의 시작 순번이 기록되어 있는 필드이다. 이것은 수신자와 연결 협상(3 Way Handshake)에서 결정되며 번호는 랜덤으로 지정된다(0부터 시작하면 취약점이 발생하기 때문이다)
Acknowledgment Number : 상대방이 전송할 순서 번호, 데이터를 상대방이 수신하고 난 뒤 상대방이 전송할 Sequence Number이다.
Header Length(HLen) : Offset 이라고도 한다. TCP Header의 길이를 표시
Reserved : 예약, 현재는 사용하지 않는 필드이다.
TCP Flags(URG / ACK / PSH / RST / SYN /FIN)
URG : 긴급 데이터, Urgent Pointer에서 긴급 데이터 위치를 확인한다.
ACK : 수신 확인 응답 데이터, 어떤 데이터를 받았다면 응답을 보낼때 ACK도 함께 보내진다.
PSH : 데이터를 즉시 전송 처리
RST : 강제 연결 종료
SYN : 연결 요청
WIndow : 통신 대상에게 자신이 받을 수 있는 여유 공간 크기를 전송. 이 크기를 확인함으로써 흐름 제어가 진행될 수 있다.
Checksum : Segment(4계층) 전체에 대한 오류 값 검사
Urgent Pointer : TCP Flags에서 URG가 설정된 경우 긴급 데이터 위치 값을 나타낸다.
TCP는 헤더 안에 전송 체크 / 전송 사이즈 체크 / 오류값 검사 등을 하는 필드가 있으므로 신뢰성을 보장할 수밖에 없는 프로토콜이다. 시험에 등장한 적 있는 부분은 특별히 체크해 두었으므로 반드시 기억하자.
반응형'Engineer information security' 카테고리의 다른 글
멀웨어(Malware) 알아보기 (0) 2020.11.13 UDP(User Datagram Protocol)란? (0) 2020.11.11 TCP 와 UDP의 차이 (0) 2020.11.08 4계층 Transport layer (0) 2020.11.03 Router CLI 기본설정 (0) 2020.11.02