포도가게의 개발일지

네트워크 프로그래밍 & Echo server 본문

CS

네트워크 프로그래밍 & Echo server

grape.store 2021. 9. 22. 14:20
반응형

클라이언트 - 서버 프로그래밍 모델

  • 모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초하고 있다.(한개의 서버 프로세스와 한개 이상의 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: 호스트가 보내는 데이터로 구성되있다.

internet에서 호스트a -> 호스트b한테 데이터를 보내고있다.

글로벌 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와 연결되어 있을 수 있다.

 

twitter의 dns 및 IP 주소

 

 

 

echoclient.c
echo server
echo server
echo client

Comments