1. OSI 계층
https://ai-hong.tistory.com/37?category=845057
02. OSI 7Layer & TCP/IP 4Layer
OSI 7Layer 의 각 계층적 구조는 다음과 같다. Application 계층부터 Transport 계층까지를 Network Edge 라고 하며, Network 계층부터 Physcial 계층까지를 Nerwork Core 라고 한다. 1) Network Edge - 인터넷의..
ai-hong.tistory.com
예전에 정리해 놓은 개념이 있어 대체한다.
2. TCP
TCP는 OSI 7계층중 전송 계층에서 사용하는 프로토콜이다.
3 way handshake 를 통해 연결을 하며
4 way handshake 를 통해 연결을 종료한다.
--> 서로의 확인과정이 있기때문에 당연 1:1 통신만 가능하며, 신뢰성 연결을 할수있다 하지만 UDP 에 비해 확인과정을 거치기 때문에
연결 속도 전송 속도가 느릴수밖에 없다.
2 - 1. 연결과정
1. 연결을 위해 SYN 플래그 전송
2. 연결 확인을 위해 SYN + ACK 전송
3. ACK를 전송하여 연결 확인
2 - 2. 연결 종료
1. 사용 다했으니 FIN + ACK 전송
2. 서버는 클라이언트에게 확인 완료를 위해 ACK 플래그 전송
3. 서버는 클라이언트에게 아무 반응이 없다면 FIN + ACK 전송
4. 클라이언트는 서버에세 종료 확인을 위해 ACK 플래그 전송후 연결 종료
2 - 3. TCP 의 헤더
- Source Port: 출발지의 포트, 즉 데이터를 보내는 컴퓨터의 포트 정보입니다. 컴퓨터가 갖을 수 있는 포트는 65536개이므로 사이즈가 2바이트인것을 확인하세요.
- Destination Port: 반대로 목적지의 포트입니다.
- Sequence Number : 송신 데이터의 일련 번호를 담고 있습니다.
- Acknowledgement Number : 그전의 데이터를 잘 받았다는 표시로 상대방이 다음에 전송할 일련번호를 담고 있습니다. 줄여서 ACK라고 하겠습니다.
- HLEN(Header Length) : 헤더의 정보를 담고 있습니다. 4 bits의 워드 단위입니다. 헤더의 길이는 최소 20바이트 ~ 60바이트까지입니다.
- Reserved : 예약된 비트입니다. 아직 사용하지 않습니다. 나중을 위해서 남겨두는 비트인 셈이지요.
- Control Flags
FLAG | 설명 |
URG (Urgent Pointer) |
Urgent Pointer의 필드가 유요하다는 의미의 FLAG |
ACK (Acknowledgement) |
수신 확인 응답 FLAG |
PSH (Request for push) |
송수신 버퍼의 있는 데이터 즉시 처리 요청 FLAG |
RST (Reset the connection) |
연결을 강제 중단합니다. TCP가 유지되고 있을때 이 FLAG를 사용하면 그 즉시 연결을 끊어 버립니다. 해커들이 Hijacking을 위해 피해자의 연결을 끊어버릴때 사용합니다. 보통의 정상적인 종료는 아래의 FIN FLAG를 설정합니다. |
SYN (Synchronize sequence number) |
연결 설정 FLAG |
FIN (Terminate the connection) |
정상 종료의 연결 종료 FLAG |
- Window Size : 수신자에서 송신자로 보내는 수신자의 윈도우 사이즈입니다. 즉, 수신 버퍼의 여유공간 크기를 의미하게 되지요. 송신자는 이 윈도우 사이즈 범위 내에서 수신측의 수신 확인(ACK)을 확인하지 않고 연속적으로 데이터를 보낼 수 있습니다.
- Checksum : 오류를 검사하기 위한 필드입니다. 전체 데이터가 오류가 나 변형되었는지 확인합니다.
- Urgent Pointer : 긴급 데이터의 위치값을 담고 있습니다.
3. UDP
- 비연결성 프로토콜 로서 송신자는 수신자에게 데이터 전송만 할뿐 수신자는 확인과정을 거치지 않는다
- 이러한 특징 때문에 전송 속도가 TCP 보다 훨씬 빠른것을 알수있다.
3 - 1. UDP 헤더
- Source Port / Destination Port
→ Source Port는 메시지를 보내는 측에서 통신을 위해 사용하는 Port 번호
→ Destination Port는 목적지, 즉 메시지를 받는 측의 통신 Port 번호
- Total Length
→ 헤더와 데이터를 합한 사용자 데이터그램의 전체 길이를 정의합니다. UDP 데이터그램의 헤더인 8바이트부터 65507바이트 사이의 값이 됩니다.
- Checksum
→ 헤더와 데이터를 모두 포함한 사용자 데이터그램 전체에 대해 오류를 탐지하기 위해 사용됩니다.
4. TCP 와 UDP 차이점
출처
https://joycecoder.tistory.com/20
https://velog.io/@hidaehyunlee/TCP-와-UDP-의-차이