포도가게의 개발일지
네트워크 프로그래밍 & Echo server 본문
반응형
클라이언트 - 서버 프로그래밍 모델
- 모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초하고 있다.(한개의 서버 프로세스와 한개 이상의 client 프로세스로 구성)
- 클라이언트-서버 모델에서 근본적인 연산은 트랜잭션이다.
1. 클라이언트가 서버에게 요청을 보냄
2. 서버는 요청을 받고 해석 및 자신의 자원들을 적절한 방법으로 조작
3. 서버는 응답 Response를 클라이언트로 보내고 다음 요청을 기다림
4. 클라이언트는 받은 응답을 처리한다 예를들어 서버로부터 받은 page를 스크린에 디스플레이한다.
네트워크
- 호스트에게 네트워크는 단지 또 다른 I/O 디바이스이다.
- 네트워크에서 수신한 데이터는 I/O와 메모리 버스를 거쳐 어댑터->메모리로 DMA(direct memory access)로 전송된다.
- 반대로 메모리에서 -> 네트워크로 바로 복사가능하다.
- 각 이더넷 어댑터는 비휘발성 메모리에 저장된 고유한 48비트 주소를 가진다.(mac address)
- LAN은 internet보다는 host간에 작은 연결 이며 이러한 한 객체?를 network라 부른다
- 각각의 네트워크들은 router를 이용하여 network to network로 상호작용 가능하며 internet이 된다.
internet
- internet 프로토콜은 두 가지 기본제공을 해야한다
- 명명법 : 각 호스트는 자신을 유일하게 식별하는 internet 주소 최소한 한개가 할당되어야한다.
- 전달기법 : 인터넷 프로토콜은 데이터 비트를 패킷이라고 부르는 비연속적인 단위로 묶는 통일된 방법을 정의한다.
또한, 패킷은 패킷헤더: 패킷 크기와 소스 및 목적지 호스트 주소를 포함하고있고, Payload: 호스트가 보내는 데이터로 구성되있다.
글로벌 IP 인터넷
- 각 인터넷 호스트는 TCP/IP 프로토콜을 구현한 소프트웨어를 실행하며, 이것은 거의 모든 현대 컴퓨터 시스템에서 지원되고 있다.
- 클라이언트와 서버는 소켓인터페이스와 Unix I/O 함수들의 혼합을 사용해서 통신한다.
- IP와 UDP는 데이터를 잃어버릴 수 있어 안정적이지 못하지만 TCP는 프로세스들 간에 안전한 완전 양방향 연결을 통해 안정성을 보장해준다.
IP 주소
- IP주소는 비부호형 32비트 정수이다. 흔히 우리가 아는 127.0.0.1(localhost)로 8bit.8bit.8bit.8bit로 32bit이다
- 하지만 실제 주소는 16진수로 표현되며 128.2.194.242는 0x8002c2f2로 표현한다.
DNS 주소
- 흔히 사람들이 사이트를 ip주소로 외우기 힘들기 때문에 www.naver.com과 같은 dns 주소로 매핑하여 연결한다.
- 하나의 도메인주소에 여러 ip가 매핑되있을 수 있으며, 하나의 ip가 여러 dns와 연결되어 있을 수 있다.
'CS' 카테고리의 다른 글
Kaist PintOS Project 1 (0) | 2021.10.04 |
---|---|
동시성 프로그래밍 (0) | 2021.09.26 |
동적 메모리 할당 part 2 (0) | 2021.09.13 |
동적 메모리 할당 (0) | 2021.09.10 |
가상 메모리 관리 참조 : 컴퓨터 시스템 && [OS] Lec 10. Virtual Memory Management (3/6) - Replacement Strategies for Fixed Alloc. 1 (0) | 2021.09.10 |
Comments