Network


서버(서빙): sender(보내는사람) 클라이언트(고객): receiver(받는사람)


프로토콜(전송규약)

  • 규칙
  • smtp(Simple Mail Transfer Protocol : 메일전송규약), ftp(File Transfer Protocol : 파일전송규약), http(HyperText Transfer Protocol : 하이퍼문서 전송 규약)

TCP(Transfer Control Protocol)

  • 신뢰성(Reliable) 있는
  • 연결지향성(Connection-oriented)
  • 오류 및 패킷 손실 검출시 재선송 요청
  • Low control를 위해 windowing을 사용 속도는 다소 느려도 신뢰성 제공

UDP(User Datagram Protocol)

  • 신뢰성(Unreliable) 없는
  • 비 연결성 (Connection less)
  • 재 전송 없음
  • 신뢰성은 보장하지 않지만, 고속 데이터 전송이나 실시간 전송에 적합

프로토콜

  • 두 엔드포인트가 서로 대화할 수 있으려면 둘 다 일련의 규칙을 따라야 합니다. 컴퓨터에서 이러한 규칙 집합을 프로토콜이라고 합니다.

  • IP : 숫자로된 집주소.
  • 도메인 : 주소를 문자로 한 이름


Socket(소켓) 프로그래밍?

: 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고받을 수 있도록 하는 것.

  • 내가 먼저 노드(컴퓨터)에 요청: 클라이언트
  • 신호를 받아서 내려주는 역할: 서버

종류: UDP 와 TCP 2가지 종류가 있다. –> 차이?


UDP vs TCP 신뢰도 up

UDP: 신뢰도 down

클라이언트와 서버의 커넥션 없다. 메시지 하나로 왔다갔다함. 데이터그램이 전송되는지 보장할 수 없다.
->서버와 클라이언트 누구에게나 자유롭게 보낼 수 있다, 정보를 받았는지 확인이 되지 않는다. 데이터그램이 중간에 없어져도 알 수 없다. 속도가 빠르다(TCP와 다르게 흐름제어를 하지 않기 때문), 안정성 보장X 대용량 데이터를 보낼 때 사용. 데이터가 분실되더라도 우리가 취급하는데 이상이없는 경우,(영상같은거) 송수신하는 데이터의 양은 작으면서 잦은 연결이 필요한 경우에 TCP보다 훨씬 효율적이고 빠르게 동작한다.

TCP: 신뢰도 up

: 클라이언트가 받을 때 까지 신호를 보낸다. 바이트 스트림을 주고 받는다. 문서 전송. 속도가 느린편이다.


서버 만들기 절차)

w:400 bg








서버란? : 클라이언트에게 네트워크를 통해 _정보나 서비스_를 제공하는 컴퓨터 시스템.


서버를 만들기 위한 절차 ?

  1. 소켓 생성: 통신 개찰구 입구 생성.

  2. bind() : 서버의 ip주소(소켓 주소)와 포트(소켓 번호)를 소켓에 할당./ 결합. –>나 여기서 장사할게 여기가 가게입구야.
  3. listen(): 다른 컴퓨터에서 응답할 수 있도록 대기 상태로 만들기.
  4. accept() : 어떤 클라이언트로 부터 연결 요청이 왔으면 수락해주는 함수.
  5. read()write(): 두 컴퓨터가 연결되었으니 필요한 데이터를 전송하고 받는다.
  6. close() : 끝날 시에 연결을 끊어준다.

client 만들기 절차

  1. 소켓생성
  2. ()
  3. connect() 연결요청
  4. close() 소켓을 닫고 통신 종료하는 함수.

주소 체계와 데이터 정렬

IP vs Domain vs name server

  • IP: Internet protocol의 약자

  • Domain 주소: 숫자로 된 주소를 문자로 바꾸어준다.

  • 네임서버: 문자로 된 주소를 숫자로 바꾸어 준다.