네트워크 개념

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

모든 네트워크 응용 프로그램은 클라이언트-서버 모델에 기초하고 있다. 이 모델에서 근본적인 연산은 트랜잭션이다.

클라이언트-서버 트랜잭션은 네 단계로 구성된다.

  1. 클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청(request)을 서버에 보내는 것으로 트랜잭션을 개시한다. (예시- 웹 브라우저가 파일을 필요로 할 때, 웹 서버로 요청 보냄)
  2. 서버는 요청을 받고, 해석하고, 자신의 자원들을 적절한 방법으로 조작한다. (예시- 웹 서버가 클라이언트로부터 요청을 받을 때, 디스크 파일 읽음)
  3. 서버는 응답(response)을 클라이언트로 보내고, 그 후 다음 요청을 기다린다.
  4. 클라이언트는 응답을 받고 이것을 처리한다. (예시- 웹 브라우저가 서버로부터 페이지를 받은 후, 이것을 스크린에 디스플레이함)

https://blog.kakaocdn.net/dn/YvMsL/btrfBrwYw74/1dcb9t1cK0w8KPzkeHFKlk/img.png

클라이언트-서버 트랜잭션

클라이언트와 서버는 프로세스(실행 중인 프로그램)이며 모든 서버는 호스트이지만, 모든 호스트가 서버는 아니다.

2. 네트워크

네트워크는 위에서 말한 클라이언트와 서버가 서로 데이터를 요청하고 응답하는 것과 같이 호스트들을 서로 연결하고 통신할 수 있는 것을 말한다. 물리적으로 네트워크는 기하학적 위치로 구성된 계층구조 시스템이다.

| LAN(Local Area Network)

네트워크 계층구조의 하위수준으로는 LAN이 있고, 가장 대중적인 LAN기술은 이더넷(Ethernet, 네트워크에 연결된 각 기기들이 48bit의 고유의 MAC주소를 가지고 이 주소를 이용해 상호간에 데이터를 주고 받음)이다.

이더넷 세그먼트는 몇 개의 전선들과 허브라고 부르는 작은 상자로 구성된다. 각 전선은 동일한 최대 비트 대역폭(대개 100Mb/s거나 1Gb/s)을 가진다.

https://blog.kakaocdn.net/dn/pgck5/btrfBrKrot3/sQECpXmxkWWJsbbfIuJgb0/img.png