Why Are You Slowing Down My WiFi, Apple? To Make Things Better?

I defend Apple a lot.  When Network World wrongly accused the original iPhone of flooding Duke University's network, I defended Apple.  (It was later found to be a Cisco problem.)  When a health care provider I was doing some work for blamed SIP-enabled iPhones for a VoIP problem, I eventually found out that the APs were to blame.  (The APs were failing to respond to WiFi frames tagged as "Background" QoS.)  Time and time again networking folks blame device makers like Apple, and time and time again the problem ends up being the network.

There are times, however, when it really is Apple's fault.  When the network is operating just fine.  This is one of those times.  The problem is that I just don't know why.

802.11n (HT) and 802.11ac (VHT) networks operate in co-existence with first generation (802.11a/b/g, that is) WiFi a lot.  When that happens, the HT or VHT access point operates in mixed mode.

There are all sorts of ramifications when a WiFi network operates in mixed mode, but one of the bigger ones (a ramification that usually results in a throughput loss between 25% and 40%) is the protection mechanism.  When the the AP operates in mixed mode, it transmits data using the protection mechanism and it uses Beacon and Probe Response frames to tell WiFi devices to use the protection mechanism.  An AP or device using the protection mechanism will precede its data frame transmissions with the transmission of a non-data carrying frame called a request to send (RTS) or a clear to send (CTS).  The RTS and CTS frames are always sent at a data rate that the legacy devices can understand.  For example, a WiFi network with a mix of 802.11a and 802.11ac devices would see 802.11a (24 Mbps, typically) RTS and/or CTS frames sent in advance of data that would be sent using VHT rates (up to 1,300 Mbps with today's gear).

An important note in all of this is that if there is no mixed mode, then there doesn't need to be any protection mechanism.  If you've got a bunch of HT devices all associated to an HT AP, then there shouldn't be any RTS or CTS frames slowing down the data.

Rough & Tumble Films (a movie production company whose owners I'm friends with and who have a little country noir called "We Gotta Get Out Of This Place" airing on the Starz network later this year) has a WiFi network with an HT AP and all HT (or VHT) devices.  (See the Probe Request frame below showing the "R&T" network indicating that all devices are HT-capable.)


The R&T WiFi network should see HT data frames going across the WiFi channel without any RTS and/or CTS frames slowing it down.  That is not, however, what shows up in my WildPackets OmniPeek capture.  (See that the highlighted data frames below are sent at HT rates of 243 Mbps and 300 Mbps, but they are surrounded by RTS and CTS frames sent at 24 Mbps.)


What gives, I wondered?  Are the Probe Response frames coming from the AP giving me bad information?  Are devices acting up?  My initial capture was done on data going to and from my laptop (MacBook Air using dual-band, two-stream 802.11n), so I wanted to add my phone to the network to see if anything was different.

When I added my phone (iPhone 5 using dual-band, single-stream 802.11n), the same behavior occurred.  More 24 Mbps RTS and CTS frames were surrounding my HT (this time 135 Mbps or 150 Mbps) data.


I noticed a trend when investigating all of this protection mechanism traffic on my friends' non-mixed mode WiFi.  I noticed that the RTS frames were only being sent by my devices.  The APs were never sending an RTS frame.  Beyond that, I noticed that when the AP was the transmitter of a data frame, neither an RTS or a CTS preceded that data frame.  In short, I noticed that the AP was not using the protection mechanism, which my laptop and phone were.

I know, then, that Apple devices (both iOS and OS X) slow down the channels they are using by acting like it's mixed mode even when it's not.  What I don't know is, Why?  Did Apple make a mistake?  Is there some HT or VHT protocol that I am unaware of that causes devices to use the protection mechanism even when APs don't?  Or is Apple doing this on purpose because someone at Apple thinks that their devices function better when the protection mechanism is always on?

After seeing Apple devices voluntarily engage in the protection mechanism, it made me think back to a question that I received while doing a Reddit AMA last year.  A person asked about RTS/CTS being used to manage network traffic and getting devices to cooperate.  The person from Reddit mentioned that he (sorry ladies, but when his Reddit handle is "ShadowHawk109" and he posts about beer, WiFi and William Shatner, it's got to be a guy) did work in academia, so I just assumed that he didn't know what he was talking about.  Maybe he was on to something.  Maybe Apple believes that their devices will have a more consistent data connection over WiFi if RTS/CTS frames are being used all the time, and so they've enabled it in their devices.  Maybe Apple doesn't care that much if their devices cause the maximum available throughput to be lower on the channel.

Whatever the reason may be that Apple devices have been programmed to use RTS/CTS frames, WiFi professionals are going to have to deal with the impact.  It could mean that our throughput tests mean even less and that our ability to support high density deployments has been expanded.

***

If you like my blog, you can support it by shopping through my Amazon link or donating Bitcoin to 1N8m1o9phSkFXpa9VUrMVHx4LJWfratseU

Comments

  1. Ben,

    Not necessarily that RTS/CTS always slows down the overall performance.
    RTS/CTS are good for reliability; especially in 11ac environment.
    Infact, with 11ac, RTS-CTS protection along with AMPDU over AMSDU performs better than without RTS for all the tests that I have been doing.

    Its not bad at all to do RTS-CTS anymore;
    The penalty are actually very less for the extra reliability.

    ReplyDelete
  2. RTS/CTS diminishes throughput capacity. As stated in the article, if the counterweight is an improvement in consistency, then that's good.

    ReplyDelete
  3. Interesting article Ben! I have been investigating lots of RTS/CTS on my WLAN for some time and was actually hoping to garner your opinion, but couldn't find a contact-me e-mail address. I think it might be the same thing, but I'm not familiar enough with packet traces to be sure. (yet!).

    ReplyDelete
  4. I feel a lot more people need to read this, very good info

    ReplyDelete
  5. I am sure that this is going to help a lot of individuals. Keep up the good work. It is highly convincing and I enjoyed going through the entire blog.
    digital marketing courses in hyderabad with placement

    ReplyDelete
  6. Fascinating post. I Have Been considering about this issue, so thankful for posting. Totally cool post.It 's very generally very Useful post.Thanks
    data science certification

    ReplyDelete
  7. This post is very simple to read and appreciate without leaving any details out. Great work!
    digital marketing courses in hyderabad with placement

    ReplyDelete
  8. Thanks for sharing this information. I really like your blog post very much. You have really shared a informative and interesting blog post with people..
    data scientist course

    ReplyDelete
  9. wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated.
    data scientist course in hyderabad

    ReplyDelete
  10. I'm glad I found this blog! Occasionally, students want to know the keys to writing productive literary essays. Your first-class knowledge of this great job can become a suitable foundation for these people. Good
    Best Data Science Courses in Bangalore

    ReplyDelete
  11. Hi Thanks for Sharing this Valuable Information with us: this is very useful for me. Keep it Up.
    artificial intelligence course in aurangabad

    ReplyDelete
  12. Excellence blog! Thanks For Sharing, The information provided by you is really a worthy. I read this blog and I got the more information about
    data scientist course in pune

    ReplyDelete
  13. I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people.
    Best Data Science courses in Hyderabad

    ReplyDelete
  14. This is most informative and also this post most user friendly and super navigation to all posts... Thank you so much for giving this information to me..
    machine learning training in aurangabad

    ReplyDelete
  15. GST University Admission result 2020-21 will be published by gstadmission.ac.bd website. GST Eligible List Result Published Very Soon. Candiates Guccho Admission Result check easily our website- jobnewsbd24.com

    ReplyDelete
  16. Hi. I have just found a very good site which talks about VIN decoder, visit their website here. You can use the tool to inquire information on any car's history by finding the detail on its VIN number. Let me know how your experience with it after using the tool.

    ReplyDelete
  17. I finally found great post here. Thanks for the information. Please keep sharing more articles.카지노사이트

    ReplyDelete
  18. I recently came across your article and read it. I want to express my admiration for your writing skills and your ability to get readers to read from start to finish. I would love to read more recent articles and share my thoughts with you.
    Digital Marketing Course in Bangalore

    ReplyDelete
  19. You published a wonderful short article. I was extremely touched after I saw your writing, and also I actually suched as the tale of what I was seeking due to the fact that it consisted of every little thing. I'm so interested concerning just how you thought about this details and also exactly how you discovered it. Take a look at my writing as well as let me understand. 바카라사이트

    ReplyDelete
  20. That's a really impressive new idea! 메이저토토사이트추천 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you.


    ReplyDelete

  21. Very good message. I came across your blog and wanted to tell you that I really enjoyed reading your articles.


    Data Analytics Course in Bangalore

    ReplyDelete
  22. When I read your article on this topic, the first thought seems profound and difficult. There is also a bulletin board for discussion of articles and photos similar to this topic on my site, but I would like to visit once when I have time to discuss this topic. 안전토토사이트


    ReplyDelete
  23. Your internet site has excellent material. I believe it was a great chance to alter my mind once more after reading this post. I'm composing like you. Would certainly you such as to see my blog post and also request for responses? 바카라사이트

    ReplyDelete
  24. Many thanks for the article, I have a lot of spray lining knowledge but always learn something new. Keep up the good work and thank you again. 메이저사이트모음


    ReplyDelete
  25. I accidentally searched and visited your site. I still saw several posts during my visit, but the text was neat and readable. I will quote this post and post it on my blog. Would you like to visit my blog later? 토토사이트순위


    ReplyDelete
  26. This is the perfect post.메이저토토사이트 It helped me a lot. If you have time, I hope you come to my site and share your opinions. Have a nice day.


    ReplyDelete
  27. A commitment of gratefulness is all together for such a phenomenal post and the audit, I am completely pushed! Keep stuff like this coming. ufa168

    ReplyDelete
  28. Thanks for the blog filled with so many information. Stopping by your blog helped me to get what I was looking for. Now my task has become as easy as ABC. 안전놀이터


    ReplyDelete
  29. Papers get to operate through Bible helpers and also plagiarism checkers to be certain that the author did not find idle at any stage in the process. Language inconsistencies won't be a thing with your newspapers as the specialists of our school paper writing support are passionate about writing and are always excited to strike you with something fresh. By: 안전놀이터


    ReplyDelete
  30. I figure this article can be enhanced a tad. There are a couple of things that are dangerous here, and if you somehow managed to change these things, this article could wind up a standout amongst your best ones. I have a few thoughts with respect to how you can change these things. 메이저놀이터


    ReplyDelete
  31. he blog was how do i say it… relevant, finally something that helped me. Thanks온라인경마

    ReplyDelete
  32. Thanks for sharing this article. This article was very helpful to me. Keep moving. 파워볼

    ReplyDelete
  33. This site is known as a walk-by way of for the entire data you wished about this and didn’t know who to ask 립카페. Glimpse right here, and you’ll positively discover it.

    ReplyDelete
  34. I’d have to talk to you here 마사지블루. Which isn’t something Which I do! I love to reading a post that should get people to think. Also, thank you for allowing me to comment!

    ReplyDelete
  35. I just want to say I’m new to blogs and certainly savored this blog site. Very likely I’m planning to bookmark your blog 출장마사지. You amazingly have fantastic articles. Thanks for sharing your blog.

    ReplyDelete
  36. Thank you for this wonderful post! It has long been extremely helpful. 메이저사이트I wish that you will carry on posting your knowledge with us.


    ReplyDelete
  37. It has a good meaning. If you always live positively, someday good things will happen. 메이저사이트Let's believe in the power of positivity. Have a nice day.


    ReplyDelete
  38. Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing.cloud computing course fee in hyderabad

    ReplyDelete
  39. Two full thumbs up for this magneficent article of yours. I've really enjoyed reading this article today and I think this might be one of the best article that I've read yet. Please, keep this work going on in the same quality. artificial intelligence training in delhi

    ReplyDelete
  40. Much obliged for giving a helpful article containing significant Information.

    AI Training in Hyderabad

    ReplyDelete
  41. Amazingly by and large very interesting post. I was looking for such information and thoroughly enjoyed examining this one. Keep posting. An obligation of appreciation is all together for sharing.
    ethical hacking in hyderabad

    ReplyDelete
  42. Really nice and interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing
    data analytics courses in hyderabad

    ReplyDelete
  43. Your article is great. I think it will be praised anywhere provide on this site has helped me greatly. Thanks for all of your time & work. 안전토토

    ReplyDelete
  44. I like your blog. i ma happy to read your blog its very informative and your blog is really good and impressive you made it mice 안전토토

    ReplyDelete
  45. It s really amazing here. I want to say that your amazing. I learn and learn a lot of useful information. 토토커뮤니티

    ReplyDelete
  46. This kind of clever work and reporting! Keep up the very good works guys I ve added you guys to our blogroll. 안전토토

    ReplyDelete
  47. I didn t know there was a place like this. I think it s good because there are many good comments. Let s get along well from now on. 먹튀검증사이트

    ReplyDelete
  48. This is my first time i visit here and I found so many interesting stuff in your blog especially it's discussion, thank you. artificial intelligence training in delhi

    ReplyDelete
  49. Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
    cloud computing in hyderabad

    ReplyDelete
  50. Hello, I am one of the most impressed people in your article. 슬롯사이트 If possible, please visit my website as well. Thank you.


    ReplyDelete
  51. I have been looking for articles on these topics for a long time. 카지노사이트 I don't know how grateful you are for posting on this topic. Thank you for the numerous articles on this site, I will subscribe to those links in my bookmarks and visit them often. Have a nice day

    ReplyDelete
  52. Jio Sim Home Delivery- see how to order jio sim from home.
    Metaverse kya hai- know what is metaverse.
    Web 3.0 kya hai- Know what is web 3.0 and how powerful it is.
    Blockchain kya hai-Know What Is blockchain
    RDP Server kya Hai

    ReplyDelete
  53. NFT in Hindi-An NFT, which stands for a non-fungible token, is a unique unit of data employing technology that allows digital content.

    ReplyDelete
  54. Nft Kya HaiAn NFT, which stands for a non-fungible token, is a unique unit of data employing technology that allows digital content.

    ReplyDelete
  55. Nice post. I learn something totally new and challenging on websites. I stumbleupon on a daily basis. It will always be exciting to read articles from other writers and use something from their Websites. แทงบอลไม่มีขั้นต่ำ

    ReplyDelete
  56. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here . I’m going to read this. I’ll be sure to come back. thanks for sharing. and also This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article. I was surfing the Internet for information and came across your blog. I am impressed by the information you have on this blog. It shows how well you understand this subject. 승인전화없는토토사이트

    ReplyDelete
  57. Thanks for every other informative site. The place else may just I get that kind of information written in such an ideal means? I have a venture that I’m just now operating on, and I have been on the look out for such information. Subsequently, after spending many hours on the internet at last We've uncovered an individual that definitely does know what they are discussing many thanks a great deal wonderful post. I like review goals which understand the cost of passing on the marvelous strong asset futile out of pocket. I truly revered investigating your posting. Appreciative to you! 먹튀검증

    ReplyDelete
  58. Every one of the substance you said in post is too great and can be extremely helpful. I will remember it, much obliged for sharing the data continue upgrading, looking forward for more posts.Thanks . Decent to be going to your web journal once more, it has been months for me. Well this article i've been sat tight for so long. I require this article to finish my task in the school, and it has same theme with your article. Much obliged, awesome offer. This is such an extraordinary asset, to the point that you are giving and you give it away for nothing. I cherish seeing sites that comprehend the benefit of giving a quality asset to free. It is the old what circumvents comes around schedule. 먹튀폴리스

    ReplyDelete
  59. Incredible data on your web journal, thank you for setting aside an ideal opportunity to impart to us. Stunning understanding you have on this current, it's decent to discover a site that subtle elements such a great amount of data about diverse specialists. I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work . i am interestingly here. I discovered this board and I in discovering It genuinely accommodating and it helped me out a great deal. I want to present something back and help other people, for example, you helped me . 안전놀이터

    ReplyDelete
  60. Thank you so much for the post you do. I like your post and all you share with us is up to date and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job . I am so delighted I located your blog, I really located you by mistake, while I was watching on google for something else, Anyways I am here now and could just like to say thank for a tremendous post and a all round entertaining website. Please do keep up the great work . Thank you, I have just been looking for info approximately this subject for ages and yours is the greatest I’ve came upon till now. However, what concerning the bottom line? Are you certain concerning the source? 안전카지노

    ReplyDelete
  61. I truly inspired after read this on account of some quality work and instructive contemplations . I just wanna express profound gratitude for the author and want you to enjoy all that life has to offer for coming!. Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job. Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more. 토토사이트

    ReplyDelete
  62. I am impressed. I don't think Ive met anyone who knows as much about this subject as you do. You are truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. Really, great blog you have got here. I'm glad I found this web site, I couldn't find any knowledge on this matter prior to.Also operate a site and if you are ever interested in doing some visitor writing for me if possible feel free to let me know, im always look for people to check out my web site. 안전놀이터

    ReplyDelete
  63. What I don't comprehended is in all actuality how you are not actually significantly more very much wanted than you may be at this moment. You are insightful. You see along these lines essentially regarding the matter of this subject, delivered me as I would like to think trust it's anything but a great deal of fluctuated points. Its like ladies and men aren't included except if it's something to achieve with Lady crazy! Your individual stuffs extraordinary. All the time handle it up! What's Taking spot i'm new to this, I coincidentally found this I've found It totally accommodating and it has assisted me with excursion loads. 먹튀마루

    ReplyDelete
  64. Great Article. You have beautifully articulated it. Readers revisit only if they found something useful. So the core formula is to provide value to the readers. Also, Title is very important. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details. Glad to chat your blog, I seem to be forward to more reliable articles and I think we all wish to thank so many good articles, blog to share with us. Thank you so much for ding the impressive job here, everyone will surely like your post. 토토지식백과

    ReplyDelete
  65. This is my first time I visit here. I found so many engaging stuff in your blog, particularly its conversation. From the huge loads of remarks on your articles, I surmise I am by all account not the only one having all the recreation here! Keep doing awesome. I have been significance to compose something like this on my site and you have given me a thought. it's really nice and meanful. it's really cool blog. Linking is very useful thing.you have really helped lots of people who visit blog and provide them usefull information. 카지노헌터

    ReplyDelete
  66. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here. Thanks for your article! I have read through some similar topics! However, your post has given me a very special impression, unlike other posts. I hope you continue to have valuable articles like this or more to share with everyone! Excellent read, Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work . 토토경비대

    ReplyDelete
  67. You have done a great job on this article. It’s very readable and highly intelligent. You have even managed to make it understandable and easy to read. You have some real writing talent. Thank you. i am for the first time here. I found this board and I in finding It truly helpful & it helped me out a lot. I hope to present something back and help others such as you helped me. Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. 토디즈

    ReplyDelete
  68. Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more. i am for the first time here. I found this board and I in finding It truly helpful & it helped me out a lot. I hope to present something back and help others such as you helped me. I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, but I actually thought you have something interesting to say. All I hear is a bunch of whining about something that you could fix if you werent too busy looking for attention. 카지노

    ReplyDelete
  69. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here. Thanks for your article! I have read through some similar topics! However, your post has given me a very special impression, unlike other posts. I hope you continue to have valuable articles like this or more to share with everyone! Excellent read, Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work . 카디즈에이전시

    ReplyDelete
  70. Hey very cool site!! Man .. Excellent .. Amazing .. Ill bookmark your web site and take the feeds alsoI am happy to find so many useful info here in the post, we need work out more strategies in this regard, thanks for sharing. . Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as an updated one, keep blogging. Acknowledges for paper such a beneficial composition, I stumbled beside your blog besides decipher a limited announce. I want your technique of inscription... I simply must tell you that you have written an excellent and unique article that I really enjoyed reading. I’m fascinated by how well you laid out your material and presented your views. Thank you. 헤이먹튀

    ReplyDelete
  71. Nice to be visiting your blog once more, it has been months for me. Well this article that ive been waited for therefore long. i want this article to finish my assignment within the faculty, and has same topic together with your article. Thanks, nice share. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. in the relatively recent past. The experience was unquestionably astonishing. On the off chance that lone I have the opportunity 카이소

    ReplyDelete
  72. Great tips and very easy to understand. This will definitely be very useful for me when I get a chance to start my blog.
    full stack developer course

    ReplyDelete
  73. 360DigiTMG, the top-rated organisation among the most prestigious industries around the world, is an educational destination for those looking to pursue their dreams around the globe. The company is changing careers of many people through constant improvement, 360DigiTMG provides an outstanding learning experience and distinguishes itself from the pack. 360DigiTMG is a prominent global presence by offering world-class training. Its main office is in India and subsidiaries across Malaysia, USA, East Asia, Australia, Uk, Netherlands, and the Middle East.

    ReplyDelete
  74. บริการทุกระดับประทับใจ เลือกเล่น betflixsupervip มีหลากหลายเกมสล็อต ไม่ว่าจะเป็น สล็อต joker, pgslotgame , super-slot ที่หาเล่นได้ทั้งหมดจาก betflixsupervip ของเรา ทางเราเปิดบริการตลอด 24 ชั่วโมง ฝากถอนได้ดั่งใจ Betflik

    ReplyDelete
  75. It's the same topic , but I was quite surprised to see the opinions I didn't think of. My blog also has articles on these topics, so I look forward to your visit. bitcoincasino

    ReplyDelete
  76. Impressive. Your story always bring hope and new energy. Keep up the good work.
    Food Processing Business

    ReplyDelete
  77. Thanks for your marvelous posting! I really enjoyed reading it, you could be a great author.
    Small Business Models

    ReplyDelete
  78. Nice post. I learn something totally new and challenging on websites. I stumbleupon on a daily basis. It will always be exciting to read articles from other writers and use something from their Websites.
    mushroom cultivation business

    ReplyDelete
  79. I was impressed by your writing. Your writing is impressive.
    Organic vegetable Cultivation

    ReplyDelete
  80. Your post is very interesting to me. Reading was so much fun. I think the reason reading is fun is because it is a post related to that I am interested in.
    Competitive Course for Banking

    ReplyDelete
  81. I want to leave a little comment to support and wish you the best of luck. we wish you the best of luck in all your blogging endeavours.
    Rice Milling Technology
    One to One Tuition

    ReplyDelete

  82. Thank you for some other informative blog.
    온라인바카라

    Your writing is impressive.
    홀덤사이트

    ReplyDelete
  83. 나는 더 비슷한 주제에 관심이있을 것입니다. 정말 유용한 주제를 받았군요. 항상 블로그를 확인하겠습니다. 감사합니다. 강남 하이킥

    ReplyDelete
  84. Very best along with Most economical Jabodetabek Personal Instruction, your workers and trainers occur to your house, established your individual examine plan and may pick any arena with study ... visit https://kursus-akuntansi.netlify.app/kursus-akuntansi-jakarta-utara.html for further

    ReplyDelete
  85. You will see a cheaper fee compared to table above, make sure again about the qualifications from the teacher / Kindergarten teacher recommended back ... for detail https://lesprivat-exed.blogspot.com/2022/03/les-privat-jakarta-utara-1-terbaik.html

    ReplyDelete
  86. Amazing tool. I love the emoticons you can use...they're so adorable! Full Wave Rectifier

    ReplyDelete

Post a Comment

Popular posts from this blog

Five Facts About 6 GHz Wi-Fi

Go To Sleep, Go To Sleep, Go To Sleep Little iPhone

Chips, Glorious Wi-Fi 6E Chips!