OSI 7 Layer, TCP/IP 등등.. 네트워크를 공부하다 보면 TPC/UDP는 항상 같이 묶여서 설명되곤한다.
TCP 와 UDP는 무엇인가?
TCP 란?
- Trasmission Control Protocol의 약어로 전송 제어 프로토콜이다.
- 연결형 서비스를 지향하는 프로토콜로, 가상 회선 방식을 사용한다.
- 연결 후 데이터를 전송하기 때문에 신뢰성이 높으며 데이터의 흐름을 제어한다.
- UDP 보다 속도가 느리다.
- 패킷을 전송하기 위해 논리적인 경로를 배정 후 데이터를 전송한다.
- 세션은 서버와 클라이언트로 1:1 연결이다.
- 패킷을 잘받았나 응답을 하고, 오류가 있거나 잘못 받았을 경우 재전송을 요청한다
-> Streaming 서비스에 불리하다
- 3 -WAY Handshake 방식을 통해 세션간 연결 후 통신 한다.
-> SYN ->SYN/ACK -> ACK
- 4-WAY Handshake 방식을 통해 세션간 통신을 종료한다.
-> FIN -> ACK -> FIN -> ACK
UDP 란?
- User Dategram protocol의 약어로 데이터 그램으로 데이터를 전송하는 방식이다.
- 비 연결형 프로토콜로 패킷은 각각 다른 경로로 전송한다.
- TCP 처럼 데이터를 받았는지에 대한 응답을 하지 않는다
- 신뢰성이 낮다
- TCP 보다 속도가 빠르다.
- 서버와 클라이언트는 1:1, 1:N , N:M으로 연결된다
- 메세지 단위로 전송되며 크기는 65535Byte이다. 크기 초과시 잘라서 보낸다.
TCP로 데이터를 전송할 경우 TCP 헤더가 앞에 추가되는데 아래와 같은 정보를 가지고 있다.
여기서 알아야 할것은 TCP 플래그 비트인 URG, ACK, PSH , RST, SYN, FIN 이다.
1. SYN - Synchronization : 동기화, 연결요청
- 세션 성립 시 가장 먼저 보내는 패킷, 시퀸스 번호를 임의적으로 걸정 해 세션을 연결하는데에 사용되며 초기에 시퀸스 번호를 보내게 된다.
2. ACK - Acknowledgement - 응답
- 상대로부터 패킷을 받았다는 걸 알려주는 플래그로, 다른 플래그와 같이 출력되는 경우도 있다
- 일반적으로 받은 시퀸스 번호에 +1값 하여 ACK 응답을 보낸다.
- ACK 응답을 통해 패킷을 보내는데 성공, 실패 여부를 판단해 재전송 혹은 다음 패킷을 전송함
3. RST - Reset : 재연결
- 양방향에서 동시에 일어나는 작업으로, 비정상적인 세션을 끊을때 발생한다.
4. PSH - push : 밀어넣기
- 빠른 응답을 위해 OSI 7 계층의 Application 계층으로 전송하도록 하는 플래그
- 대화형 트래픽에서 사용되며 버퍼링 없이 바로 응용계층으로 전송
5. URG - Urgent : 긴급 데이터
- 데이터 전송 중 긴급하게 전해야할 내용이 있을 경우 사용하며, 다른 데이터에 비해 우선순위가 높아야 한다.
6. FIN - Finish : 연결 종료
- 세션 연결 종료시 사용됨
URG,ACK,PSH,RST,SYN,FIN 순서로 헤더값에 플래그 비트값을 포함하여 전송하며 각 플래그를 0과 1로 미사용/사용 여부를 나타낸다.
EX ) SYN/ACK 플래그 일 경우 010010 으로 전송된다.
'CS > Network' 카테고리의 다른 글
URL을 입력하면 어떻게 사이트를 찾아가는 걸까? (0) | 2023.05.26 |
---|---|
Port 란? (0) | 2019.10.28 |
NAT 란 무엇인가 (0) | 2019.10.23 |
탭(Tap) 장비 란? (0) | 2019.10.15 |
핫 스왑(Hot Swap) 이란? (0) | 2019.10.14 |