https://www.edwith.org/tel-ewha-course/joinLectures/13274
2. 통신프로토콜
- 프로토콜이란?
통신회선을 이용해 컴퓨터 - 컴퓨터, 컴퓨터 - 단말기끼리 데이터를 주고받는 경우 “상호약속”
무엇을, 어떻게, 언제 통신할 것인지 약속하여 통신오류를 피하기 위한 규약.
-
프로토콜의 3요소
- 구문(syntax): 데이터블록의 format(형식).
- 의미(Semantics): 상호작용, 오류제어 등을 위한 제어정보.
- 동기(Timing): 속도 / 순서를 상호간에 맞추는 것.
-
실제 프로토콜의 기능…
많은 기능을 수행하며, 통신에서 매우 중요하다고.- 동기 제어 (synchronization)
- 패킷의 분리 / 재결합
- 흐름 제어(Flow Control) - 보내는 측이 데이터를 많이 보냈는데 받는 측이 수용할 능력이 부족한 경우… Overflow 발생, 재전송해야 하는 문제. 따라서 Flow Control이 네트워크 성능에 영향을 미친다. 받는 측에서 수용 가능한 속도로 보낼 수 있게 조절해주는 걸 말함.
- 순서 제어(도착한 패킷의 순서)
- 주소 지정(IP address)
- 오류 제어, 경로 제어(routing)
- Encapsulation
- 통신프로토콜 계층구조
계층구조… 각 계단마다 수행하는 기능이 다르다.
- HW, SW별로 계층적 구성
- 로직을 세부 모듈로 나누며, 별도 계층으로 구현
- 각 계층은 전체 기능의 부분을 수행
- 하위 계층은 상위 계층에 서비스 제공
- 상위 계층은 하위 계층을 기반으로 수행
- 한 계층의 변화가 다른 계층의 변화에 영향을 미치지 않음
프로토콜의 기본 동작.
보내는 측 = 상위 계층 -> 하위 계층으로 쭉 내려간 다음 전송 시작.
받는 측 = 하위 계층에서 받고, 하위 -> 상위 순으로 올라간다.
OSI 7계층 = 국제 표준 모델
각 계층마다 header가 붙고, 각 계층마다 더해진 header는 상대 컴퓨터의 동일 계층에서 뜯어볼 수 있다.
헤더: 해당 계층에서는 어떻게 이 데이터를 처리해야 하는지 안내를 제공한다고 보면 됨.
- TCP/IP 모델
OSI 7계층 모델… 복잡한 7개 계층의 계단구조. 따라서 좀 더 단순화된 5계층 모델이 TCP/IP이고, 이걸 더 많이 사용. 인터넷도 이 방식을 사용한다.
정확히는, Presentation / Session 기능이 그리 많은 일을 수행하는 편이 아님.
그래서 OSI의 7+6+5계층 일부를 합쳐 Application Layer로 통합. 5계층 나머지 일부와 4계층을 합쳐서 transportation Layer이 됨.
TCP/IP = 현재 인터넷 대표 프로토콜이며, 서로 다른 기종의 컴퓨터에서 데이터 송수신이 가능하도록 해준다.
메시지를 여러 패킷으로 분할해 전송하는 방식이며, 인터넷의 표준이 되는 많은 프로토콜로 구성되어 있다.
각 계층마다 여러 프로토콜이 동작하는 식.
User Data -> + 수송 계층에서의 header인 TCP header -> + IP 계층에서 IP header -> Network level packet에서 header 붙는다. 마지막 물리계층까지 내려간 뒤 전송되는 식.
- TCP vs UDP
TCP 5계층 중 4번째(transportation Layer)에서 쓰이는 프로토콜 중 하나 == TCP 프로토콜.
Transmission ctrl protocol의 약자.
연결지향형 서비스 (보내는 측 / 받는 측이 통신을 하기 전에 미리 ‘정보를 보내도 좋은지’물어보는 식.
보내는 측에서 “나 보내도 돼?” -> 받는 측에서 “ㅇㅇ 보내도 됨” -> 받는 측에서 “ㅇㅇ 잘 받음”. 총 세 번에 걸친 connection이 이루어진다. 사전에 ‘보내도 되냐고 허락을 받는 걸 연결지향형 서비스라고 칭하는 듯)
이러는 이유? Application 간 ‘신뢰성 있는 연결’을 제공하기 위해서. 잘 받았는지 일일이 확인하겠다는 걸로 이해해도 된다.
마찬가지로, 데이터 끊는 것도 몇 단계에 걸쳐 이루어진다.
신뢰성이 핵심이며, 따라서 패킷의 전송 여부도 매번 체크, 중복제거 등을 보장한다. 데이터 오류가 있는지도 체크하는 프로토콜.
또 다른 형태의 프로토콜 .. UDP (User Datagram Protocol). TCP와 대응되는 개념이라고 생각해도 됨.
TCP에 비해 UDP는 신뢰성을 보장하지 않음. 비연결형 (받을 수 있으면 받고, 못 받으면 어쩔 수 없다)
일일이 체크하는 TCP에 비해 과정이 단순함 = 빠름. 최소한의 매커니즘을 보장하는 형태. 대신 전송여부 / 중복제거 등을 보장하지 않음.
데이터에 오류가 있는지 체크할 수는 있다. (UDP 헤더에서 제공하긴 함)
인터넷 전화같은 경우… 뭐 꼭 데이터가 정확히 전달되지 않아도 된다. 일단 보내고, 만약 특정 말이 끊겼으면 다시 말해달라고 하면 되는 문제임. 이런 형태의 서비스 (Voice on IP - VOIP)에서는 UDP 형태를 선호함.
또는 스트리밍 서비스. 화소가 비거나 살짝 일그러져도 일단 재생되는 게 더 좋은 경우
(다시말해, 실시간성이 중요한 서비스라면 UDP)
'학습일지 > 네트워크' 카테고리의 다른 글
HTTP (0) | 2020.12.04 |
---|---|
[Edwith] 통신의 기초 5. 통신보안 (0) | 2020.02.05 |
[Edwith] 통신의 기초 4. 이동통신 (0) | 2020.01.30 |
[Edwith] 통신의 기초 3강. 인터넷 (0) | 2020.01.23 |
[Edwith] 통신의 기초 1강. 통신의 기본 개념 (0) | 2020.01.14 |