#3. 어플리케이션 계층

해피데빙·2022년 11월 14일
0

client, server의 통신

  • 서비스를 사용하기 위해서는 OS들이 제공하는 특수한 인터페이스를 사용해야 한다
  • 다른 컴퓨터에 있는 인터페이스로 데이터를 보내기 위해선 OS가 제공하는 api중에 하나를 사용해야 한다
  • 애플리케이션 계층 아래 다른 계층들이 OS간의 인터페이스 아래 transport 계층에서 제공하는 것(TCP/UDP) 중에 하나 선택해야 한다 (socket의 종류 자체가 다르다. socket의 type을 TCP/UDP 중에 정해주면 해당 socket으로 간다)
  • socket : 프로세스와 프로세스 간의 통신을 위한 api
  • 종류 : UDP socket(sock_dgram)/ TCP socket (sock_stream)

socket 관련 function

TCP server
1. socket을 연다 : socket()
2. 이 socket을 특정 포트에 바인드 한다 : bind()
3. 특정 포트에 듣고 있다 : listen()
4. client로부터 뭔가 요청을 받을 준비가 되었으니까 들어와라 : accept()
5. 이후 client로부터 connection이 들어오기 전까지 기다린다


TCP client
1. socket을 연다 : socket()
2. 서버 측의 어떤 것과 연결을 하겠다 : connect()
3. TCP three-way handshaking : 클라이언트와 서버 사이에 단단한 연결고리 생성
4. read and write가 가능해져 여러 차례하다가 끝나면 close()
5. server도 close()


  • socket의 index값을 리턴한다
profile
노션 : https://garrulous-gander-3f2.notion.site/c488d337791c4c4cb6d93cb9fcc26f17

0개의 댓글