* 인터넷을 사용하는 모든 어플리케이션
이메일, 웹, text messaging, remote login, p2p file sharing, game, video streaming, voice over ip, 등
* 네트워크를 지원하는 프로그램 작성 방법
- 사용하는 디바이스에서 카톡, 크롬, 네이버 등 다른 누군가와 통신할 때 데이터를 주고받을 수 있는데
이 때 네트워크를 지원하는 프로그램 작성 방법
: end system, p2p, client-server 등의 상황에서의 각 end system에서 프로그램을 구현하고 소켓만 구현하면 통신 가능
어플리케이션 레이어에서는 end에서 client-server, p2p 등 어떤 구조를 할지 결정
트랜스포트 레이어에서 어떻게 메세지를 사용해서 전달할 건지 (tcp, udp)를 명시
* 인터넷 사용 어플리케이션 두가지 패러다임
- 클라이언트 서버 아키텍처
서버 : 데이터를 제공하고 항상 켜져있어야함. 클라이언트 요구시 바로 응답할 수 있어야 함
영구적인 ip주소가 있어야함, ip주소가 바뀌면 클라이언트가 위치를 찾을 수 없음
얼마든지 확장이 가능해야 함
클라이언트 : 서비스를 사용하는 입장이라서 커넥션은 항상 켜져있지 않아도 되고 간헐적으로 인터넷 사용 가능
dynamic ip address를 받을 수 있음 . 그래서 p2p(ip끼리 연결) 불가능
- peer to peer 아키텍처
항상 켜져있는 서버가 필요없다는 장점이 있음
서로 다른 end system끼리 직접적 통신이 가능
서버를 우회할 수 없음
* 프로세스 커뮤니케이션
인터넷 상에서 어플리케이션으로 데이터를 주고 받는 것은 프로세서간의 커뮤니케이션으로 프로세스임
호스트 디바이스, 웹 브라우저, 카카오톡 등의 어플리케이션이 상대방 어플리케이션으로 메세지를 보냄
- 클라이언트 서버 모델 : 클라이언트가 메세지를 initiate -> 서버는 요구를 계속 확인 -> 요구가 오면 바로 응답하는 형태
- p2p : 어떤 end system이 클라이언트 서버 역할을 모두하고 메세지를 서로 initiate, 응답 모두 가능
* 소켓
메세지를 받고 보낼 때 내가 보낸 거라고 정체성을 나타내기 위해서 ip주소를 사용 4개의 바이트 이용(ipv4)
ip address는 어떤 프로세스와 통신하는 지 정확하게 식별할 수 없어서 port번호를 사용
-유명한 프로토콜의 well known : http 80, 8080 / 메일서버 25
데이터 플로우 : 네트워크 상에서 같은 송신디바이스와 수신디바이스의 프로세스 간 통신흐름
플로우1, 플로우2 이렇게 나눠서 부르는데 5tuple 사용
ip address + port number + protocol 이렇게 5개 튜플이 데이터 플로우를 결정
동일한 sender, receiver간 여러개의 플로우 정의 가능
* 인터넷 사용 어플리케이션의 요구
데이터 손실, 무결성, 처리 속도, 타이밍, 등
* 트랜스포트 서비스에서 사용하는 프로토콜 - tcp, udp
- tcp : 데이터 무결성 reliable, 흐름제어, 혼잡제어 제공/ 타이밍, 최소 처리 속도, 보안 제공 안함/ 연결 지향형
- udp : unreliable/ 흐름제어, 혼잡제어, 보안, connection setup 모두 지원 안함
- tcp는 20바이트, udp는 8바이트 사용해서 udp는 오버헤드가 적음
- 오디오나 비디오는 데이터가 중간에 없거나 살짝 바뀌어도 상관없고 최대한 빨리 통신을 해야해서 udp 사용
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
8. FTP (0) | 2020.04.07 |
---|---|
7. Web, HTTP (0) | 2020.04.07 |
실습 3-2. 주소정보 표현, 인터넷 주소 변환 (0) | 2020.04.07 |
실습 3-1. 소켓에 할당되는 IP주소와 PORT 번호 (0) | 2020.04.07 |
실습 2-1. 소켓의 프로토콜과 특성 (0) | 2020.04.07 |