컴퓨터 네트워크 02.Application layer

파이 ఇ·2024년 12월 4일
2
post-thumbnail

IP와 PORT

  • IP : 인터넷상의 존재하는 컴퓨터를 지칭하는 주소
  • PORT : 컴퓨터 안에 여러 프로세스 중 특정 프로세스를 지칭

IP와 PORT는 다른 컴퓨터에 위치한 프로세스를 지칭하는 인덱스이다.

Sockets

  • 프로세스는 socket을 통해 message를 주고 받는다.
  • socket은 OS에서 제공해주는 API 중 하나이다.

What transport service does an app need?

application layer는 transport layer에 종속적이며, transport layer에서 application layer에 다음과 같은 것들 보장받길 원하지만 보장해주지 않는다.

  • data integrity : 데이터 무결성(손실이 없음을 보장) -> TCP 프로토콜은 이를 보장해준다.
  • timing : 제한 시간 내에 보냄
  • throughput : 처리량
  • security : 보안

TCP를 사용할 경우 data integrity는 보장해주지만 나머지 요소들은 application에서 알아서 처리해야 한다.

HTTP (Hyper Text Transfer Protocal) 특징

  • Web's application layer protocal
  • request / response로 hypertext를 주고 받는다.
  • TCP를 사용한다.
  • default 80번 port를 사용한다.
  • stateless : 클라이언트의 상태를 기억하지 않는다. (cookie 사용)
  • safari, explorer, chrome 은 모두 다른 application 이지만 모두 같은 HTTP (protocol)을 사용하므로 브라우저와 무관하게 application 사용이 가능하다.

두 가지의 HTTP 연결 방식

non-persistent HTTP

  • 지속적이지 않은 HTTP
  • TCP 커넥션을 HTTP 사용 후 종료(close)한다.
  • 매 HTTP 마다 TCP 커넥션을 새로 맺는다. (비효율)
  • 응답시간이 persistent방식보다 오래 걸린다.

RTT ?
round trip time(=패킷 왕복 시간).
패킷을 목적지에 보내고 그 응답이 돌아오기까지의 시간을 의미한다.

persistent HTTP

  • 지속적인 HTTP
  • 클라이언트 / 서버 간 하나의 TCP 커넥션으로 여러 개의 HTTP 송/수신을 수행한다. (고효율)
  • 현재 사용하는 HTTP1.1 버전은 persistent가 default. (지속 커넥션 사용)
  • 파이프라인 사용

Type Of Socket

  • socket은 TCP와 UDP 두 가지 타입이 존재한다.

TCP(SOCK_STREAM)

  • TCP Server socket() : 웹 서버가 TCP 소켓을 연다.
  • TCP Server bind() : 방금 생성한 소켓을 특정 포트에 바인드 시킨다. 포트 번호가 적힘
  • TCP Server listen() : 해당 소켓을 listen 용도로 사용.
  • TCP Server accept() : 준비가 된 상태. 클라이언트로 부터 요청을 받을 준비가 됐다는 의미.
  • Blocks until connection from client : 클라이언트로 부터 커넥션이 들어올 때 까지 block 상태.

끝 !


간 밤에.. 지옥을 살짝 구경한 것 같다.

Ref. KOCW 한양대학교 컴퓨터 네트워크 이석복 교수님

profile
⋆。゚★⋆⁺₊⋆ ゚☾ ゚。⋆ ☁︎。₊⋆

0개의 댓글