Chapter02. Application Layer
Creating a network app
- 프로그램은 end system에서 작동
- network core device를 위한 sw 필요 X
- network core device는 application 실행 X
- end system의 application이 app의 신속한 개발과 전파를 가능하게 함
Client-Server paradigm
- server
- 항상 켜져 있는 host
- IP 주소 고정
- 많은 수의 호스트를 갖춘 data center가 강력한 가상의 서버를 생성하는 역할로 사용
- clients
- server와 contact하고 communicate
- 간헐적으로 연결됨
- 동적인 ip 주소
- client끼리 직접적으로 연결 X
- Ex. HTTP, IMAP, FTP
Peer-peer architecture
- host가 client와 server의 역할을 변동 가능
- server가 항상 켜져 있지 않음
- 임의의 end system이 직접 통신
- P2P에 속한 peer는 서로 서비스를 요청하고 전송
- self scalability : 각 peer들이 파일을 다은 peer에게 분배함으로써 그 시스템에 서비스 능력을 추가, 새로운 peer은 새로운 service capacity뿐만 아니라 새로운 service 요구사항을 제공, 서비스를 받기도 하고 주기도 함
- 간헐적으로 연결
- IP 주소가 변동됨
- Ex. P2P 파일 공유
Process communicating
- process
- host 안에서 program 수행 중
- 같은 host 내의 두 process가 inter-process 통신을 사용하여 통신
- 서로 다른 host에 있는 process가 msg를 주고 받음
- clients & servers
- client process : 통신을 시작하는 프로세스
- server process : 연결되기를 기다리는 프로세스
- P2P architecture를 사용하는 application에는 client process와 server process 존재
Sockets
- socket을 이용해 msg를 주고 받음
- sending process가 msg를 외부로 밀어낸다
- msg를 보내기 위해 sending process의 출입구 뒷편에 transport 인프라 존재 → msg가 목적지 host에 도착하면 메세지는 receiving process의 출입구를 거치고 receiving process는 msg 처리
- 각 면에 하나씩 있어 2개의 socket 존재
Addressing process
- 프로세스 identifier 필요→ msg를 받기 위해
- host device는 unique한 32bit IP address 소유
- 호스트의 IP 주소로는 부족 → 많은 프로세스가 같은 host에서 실행될 수 있음
- identifier = IP address + port number
- well-knowned port
- http server : 8.0
- mail server : 2.5
An application-layer protocol defines
- 다른 end system에서 실행되는 app의 v프로세스가 서로 msg를 보내는 방법 정의
- 교환하는 msg의 타입
- Ex. reponse, reques
- msg syntax
- field 설명
- msg semantice
- field의 정보 뜻
- rules
- 언제 어떻게 process가 msg가 send/respond 되는지
- open protocol
- RFC 정의
- 문서로 정리
- 모두가 protocol 사전에 접근 가능
- 상호 호환성 허용
- Ex. HTTP, SMTP
- proprietary protocol
- Ex. Skype
What transport service does and app need?
- application이 이용 가능한 transport service
- data integrity
- 몇몇 app들은 100% reliable한 데이터 전송을 요구 (error/loss X) → 파일 전송, 웹 거래
- audio는 조금의 loss는 용인
- timing
- 몇몇 app들은 효과적이기 위해 delay가 짧은 것을 요구 → 인터넷 전화, 대화형 게임
- throughput
- bandwidth 확보 필요
- 몇몇 app들은 효과적이기 위해 최소한의 throughput 요구 → multimedia
- elastic app들은 thorughput을 얻는대로 활용
- security
- 암호화, 데이터 무결성 등
Internet transport protocols service
- 인터넷 전송 프로토콜이 제공하는 서비스
- TCP service
- sending/receiving process 사이의 reliable transport
- flow control : 상대와 패킷 전송 속도 조절
- congestion control : network 전체가 감당할 수 있는 것보다 많이 들어오면 packet 수 조절
- connection-oriented : 연결 지향, client/server process간 전송 제어 정보 교환 (setup), ≠ connection service, source&destination만 아니까 process의 setup이 요구됨
- does not provide : timing, minimum throughput guarantee, security
- UDP service
- TCP에 비해 간단
- unreliable data transfer : 그대로 app에 넘김, 작업 X
- does no provide : reliability, flow control, congestion control, timing, throughput guarantee, security, connection setup
Securing TCP
- Vanilla TCP & UDP socket
- 암호화 X, 다 평문 ASCII로
- Transport Layer Security (TLS)
- 기밀성을 위해 암호화된 TCP 연결 제공
- TCP의 진화버전
- data integrity : 데이터 변경 X
- end-point authentication : 인증
- accessability : 안전하게 정상 자격을 가진 사람이 접속할 수 있게
- non-repudiation : 부인 방지
- application layer에서 구현된 TLS
- app은 TCP를 차례로 사용하는 TSL 라이브러리 사용
- TLS 자신의 소켓 API를 가짐
- 소켓에 전송된 cleartext가 인터넷에서 암호화됨
'Computer Science > Computer Network' 카테고리의 다른 글
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.3 Email, SMTP, IMAP (0) | 2023.11.02 |
---|---|
[CS][컴퓨터 네트워킹 하향식 접근] Chapter2.2 Web and HTTP (1) | 2023.11.02 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter1.6 Protocol Layer, service models (0) | 2023.11.01 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter1.5 Security (0) | 2023.11.01 |
[CS][컴퓨터 네트워킹 하향식 접근] Chapter1.4 Performance : loss, delay, throughput (0) | 2023.10.31 |