[TCP/IP 프로토콜 스택]
이미지 출처: http://blog.naver.com/rnjstjdwo14/40126205254
<TCP/IP 프로토콜 스택>
1. Link 계층
- 두 호스트가 인터넷을 연결해 데이터를 주고 받기 위해 필요한 물리적인 장치
(호스트: 인터넷에 연결되어 있고, 개별적인 IP 주소를 갖는 시스템(PC).
호스트는 패킷의 원천지이기도 목적지이기도 하며, 서버이기도 클라이언트이기도 하다.)
- LAN, WAN, MAN 등
2. IP 계층
- IP(Internet Protocol)을 이용하여 데이터를 목적지까지 전송한다. → 비연결형 서비스이며, 신뢰할 수 없는 프로토콜.
- 데이터를 보낼 때마다 거쳐갈 경로를 선택하며, 그 경로는 일정하지 않음. 문제 발생 시 다른 경로를 선택해 데이터를 전송함.
- 데이터의 전송순서나 오류를 신경쓰지 않는다.
- 하나의 패킷이 전송되는 과정에만 중심을 두고 설계됨.
3. Transport 계층
- IP를 기반으로 호스트 대 호스트가 어떤 방식으로 데이터를 주고받을 지 정의하는 계층.
- 그 방식에 따라 TCP와 UDP로 나뉜다.
4. Application 계층
- 위 세 개의 계층에 대한 작업을 소켓이 해주는데, 이 소켓을 이용하여 무엇인가를 만드는 계층.
[연결형, 비연결형 서비스]
이미지 출처: http://terms.naver.com/entry.nhn?docId=2271885&cid=51207&categoryId=51207
<TCP>
- Transmission Control Protocol
- 연결형 서비스를 지원한다.
- 데이터 전송 전에 연결을 미리 설정하여 송신하는 방식.
- 데이터가 모두 동일한 경로를 이용하기 때문에 보내는 순서대로 목적지에 도착한다.
- 신뢰성 있는 데이터 전송을 보장한다. → 패킷의 중복, 분실, 순서 바뀜을 자동으로 해결해 줌.
- ACK(Acknowledgement: 패킷을 받았다고 응답하는 것)을 통해 패킷의 손실을 막는다.
- 데이터 전송 시 순서 번호를 같이 전송하여, 데이터의 순서를 보장한다.
- 데이터 전송 속도가 UDP에 비해 느리다.
[TCP를 이용한 통신 절차]
이미지 출처: http://terms.naver.com/entry.nhn?docId=2271961&cid=51207&categoryId=51207
<UDP>
- User Datagram Protocol
- Datagram: 발신 단말에서 수신 단말로의 경로를 결정하는 정보를 가지고 있는 패킷의 일종.
- 비연결형 서비스를 지원한다.
- 연결설정 및 해제설정 없이 데이터를 전송하는 방식.
- 정해진 경로가 없기 때문에 전송된 패킷이 서로 다른 경로로 목적지에 도착한다. → 데이터가 순서대로 도착하지 않음.
- 신뢰성이 없다. → 데이터가 잘 전송되었는지 확인하지 않는다.
- TCP보다 구조가 단순해 전송 효율이 좋으며, 고속 전송이 필요한 환경에 유용하다. (ex) 동영상 스트리밍)
[데이터그램 방식에서 패킷 경로]
이미지 출처: http://terms.naver.com/entry.nhn?docId=2271819&cid=51207&categoryId=51207
이미지 출처: http://blog.naver.com/wisseraph/40184616089
<기타 단어>
- 라우터
- 서로 다른 네트워크를 중계해주는 장치 → 브릿지 역할
- 보내지는 송신정보(패킷)에서 수신처 정보를 읽어 가장 적절한 통신통로를 지정하고, 다른 통신망으로 전송하는 장치. (LAN ↔ LAN, LAN → WAN)
- 유지보수가 용이하며, 통신방식에 구애받지 않기 때문에 대규모 통신망을 쉽게 구성할 수 있고, 다양한 경로로 통신량(트래픽)을 분산할 수 있다.
- 초기 환경설정이 어렵고, 다양한 프로토콜 및 하위 프로토콜 지원이 어려우며, 기능이 복잡해 가격이 비싸다.
- 소켓
- 에러 탐지, 패킷의 분할 및 조립, 손실된 패킷의 재전송 등 네트워크와 관련된 일을 프로그래머 대신 수행하여, 프로그래머가 이를 신경쓰지 않고 어플리케이션 제작을 할 수 있도록 돕는 역할을 한다.
[참고사이트]
TCP / UDP
http://blog.naver.com/rnjstjdwo14/40126205254
http://terms.naver.com/entry.nhn?docId=2271922&cid=51207&categoryId=51207
http://terms.naver.com/entry.nhn?docId=2271913&cid=51207&categoryId=51207&expCategoryId=51207
http://terms.naver.com/entry.nhn?docId=2270477&cid=51173&categoryId=51173
http://terms.naver.com/entry.nhn?docId=2271924&cid=51207&categoryId=51207&expCategoryId=51207
연결형/비연결형 서비스
http://proneer.tistory.com/325
http://terms.naver.com/entry.nhn?docId=2271885&cid=51207&categoryId=51207
'Study' 카테고리의 다른 글
SSL 과 TLS, HTTPS (0) | 2017.01.13 |
---|---|
OSI 7계층 (0) | 2017.01.10 |
MVC 패턴 (0) | 2016.12.11 |
컴파일러 언어와 인터프리터 언어 (0) | 2016.12.11 |
정적인 페이지와 동적인 페이지 (0) | 2016.11.26 |