컴퓨터 네트워킹 : A services Description
1.1.2 A services Description
Internet : an infrastructure that provides services to applications.
Internet applications : e-mail, Web surfing, 스마트폰이나 타블렛 어플, 인터넷 메세징, 실시간 교통 정보, 음악 스트리밍, 영화/드라마 스트리밍, 온라인 SNS, 비디오 컨퍼런스, 멀티 게임, 위치기반 추천 시스템
이런 applications들은 "distributed" applications 라고 불리기도 하는데, 왜냐면, 다양한 서로 data를 주고받는 end system이 연결되어 있기 때문이다.
인터넷 어플리케이션들은 end system에서 run 한다. << 중요!
network core에 있는 packet switch 에서 run 하는게 아니다.
packet switch 가 end system 끼리의 data 교환을 용이하게 하는건 맞지만, data의 source 나 sink인 application과는 상관이 없다.
너한테 distributed Internet application 에 대한 재밌고 새로운 아이디어가 하나 있다고 해보자.
인류를 위해 쓰일 수도 있고, 머 단순하게 너를 부자로 만들거나 유명해지게 만들수 있다고 하자.
이 아이디어를 어떻게 실제 Internet application으로 바꿀거야?
application은 end systems에서 실행되니까, 우선 너는 end system에서 실행하는 program을 작성해야 할 거야. 머 Java, C, Python 이런걸로 코드를 짤 수 있겠지.
네가 만들건 distributed Internet application이라서, different end systems에서 실행되는 프로그램들은 서로 data를 보내야할 거야. 그리고 여기서 중요한 이슈가 생겨.
어떻게 한 end system에서 실행되는 한 program이 다른 end system에서 실행되는 다른 program에게 데이터를 전달하도록, 인터넷에 어떻게 지시하는거야?
Internet 에 연결된 end system들은 socket interface라는 걸 제공해.
이 socket interface라는 것은, 한 end system에서 실행되고 있는 program이 다른 end system에서 실행되고 있는 특정 desitination program 에게 data를 deliver하도록 Internet infrastructure에게 어떻게 요청할지를 명시해주지.
Internet socket interface는 규칙의 집합이야. sending program은 무조건 따라야하지. 그래야지 Internet이 data를 destination program에게 deliver할 수 있어.
비유 하나 해보자!
Alice가 우체국 서비스를 이용해서 Bob에게 편지(data)를 하나 보내고 싶어해.
당연하게도, Alice는 그냥 편지를 써서 창가에 놔두기만 하면 안돼.
우체국 서비스는 Alice가 편지를 봉투에 넣고, Bob의 풀네임, 주소, 우편 번호를 봉투에 적어 놓고, 봉투를 밀봉하고, 봉투 오른쪽 위에 우표를 붙이고, 봉투를 근처 공식 우체통에 넣어놓길 원해.
그러니까, 우체국 서비스는 그것 만의 "우체국 서비스 인터페이스"를 가지는 거야. 뭐 규칙의 집합이라고 해도 좋지. Alice는 이 규칙들을 반드시 따라야해.
같은 방식으로, Internet은 socket interface가 있어. data를 보내는 program은 그걸 무조건 따라야해. 그래야 Internet이 data를 받는 program에게 data를 잘 deliver 해 줄 수 있지.
우체국 서비스는 고객에게 여러가지 서비스를 제공해.
급행 배달, 수취 확인, 보통 용도, 머 더 있겠지...
네가 Internet application을 develop 할 때, 너도 무조건 너의 application을 위한 Internet's service를 하나 선택해야해. (이 Internet service는 Ch2에서 다룰거야)
Internet에 대한 2가지 description을 봤어!
하나는 인터넷의 Hardware와 software 구성요소를 설명하는 관점에서,
하나는 distributed applications에게 service를 제공하는 infrastructure의 관점에서.
그치만... 너는 여전히 Internet이 뭔지 좀 헷갈릴거야.
packet switching? TCP/IP? routers? communication links 어떤게 요즘 쓰이는거지?
걱정마셈 앞으로 다 설명해줄거야.
'📝CS 공부 > 네트워크' 카테고리의 다른 글
Wireshark Lab: TCP (0) | 2020.12.05 |
---|---|
컴퓨터 네트워킹 : What is a Protocol? (0) | 2020.10.01 |
컴퓨터 네트워킹 : A Nuts-and-Bolts Description (0) | 2020.09.30 |
댓글
이 글 공유하기
다른 글
-
Wireshark Lab: TCP
Wireshark Lab: TCP
2020.12.05 -
컴퓨터 네트워킹 : What is a Protocol?
컴퓨터 네트워킹 : What is a Protocol?
2020.10.01 -
컴퓨터 네트워킹 : A Nuts-and-Bolts Description
컴퓨터 네트워킹 : A Nuts-and-Bolts Description
2020.09.30